先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧,先把工作完成了,再看也来得及,是吧!
在项目中这种添加图片上传的效果应该是非常常见的,后面有个添加的按钮应该让有些童鞋不知道咋办了吧,其实没那么复杂,通过GridView就可以实现了
先说明一下,这里主要是讲添加图片的效果,至于图片选择器用的是第三方库photopicker,6.0权限用的是第三方库EasyPermission
1、首先这是用GridView实现的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="vertical">
<!--展示上传的图片-->
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:columnWidth="60dp"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp" />
</LinearLayout>
Adapter
package com.dearxy.wxcircleaddpic;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import java.util.List;
/**
* 展示上传的图片的GridView的适配器
* 作者: 周旭 on 2017/6/21/0021.
*/
public class GridViewAdapter extends android.widget.BaseAdapter {
private Context mContext;
private List<String> mList;
private LayoutInflater inflater;
public GridViewAdapter(Context mContext, List<String> mList) {
this.mContext = mContext;
this.mList = mList;
inflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
//return mList.size() + 1;//因为最后多了一个添加图片的ImageView
int count = mList == null ? 1 : mList.size() + 1;
if (count > MainConstant.MAX_SELECT_PIC_NUM) {
return mList.size();
} else {
return count;
}
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.grid_item, parent,false);
ImageView iv = (ImageView) convertView.findViewById(R.id.pic_iv);
if (position < mList.size()) {
//代表+号之前的需要正常显示图片
String picUrl = mList.get(position); //图片路径
Glide.with(mContext).load(picUrl).into(iv);
} else {
iv.setImageResource(R.mipmap.zj);//最后一个显示加号图片
}
return convertView;
}
}
MainActivity
这里只贴出了拿到相册返回的图片的路径后的处理
//初始化展示上传图片的GridView
private void initGridView() {
mPicList = new ArrayList<>();
mGridViewAdapter = new GridViewAdapter(mContext, mPicList);
gridView.setAdapter(mGridViewAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == parent.getChildCount() - 1) {
//添加凭证图片
checkPhotoPermission();
} else {
//查看大图
Intent intent = new Intent(mContext, PlusImageActivity.class);
//图片的路径
intent.putExtra(MainConstant.PIC_PATH, mPicList.get(position));
intent.putExtra(MainConstant.POSITION, position);
startActivityForResult(intent, MainConstant.REQUEST_CODE_MAIN);
}
}
});
}
// 处理返回照片地址
private void refreshAdapter(final ArrayList<String> paths) {
for (int i = 0; i < paths.size(); i++) {
Log.i(TAG, "path:---->" + paths.get(i));
proofPicCount++;
if (proofPicCount <= MainConstant.MAX_SELECT_PIC_NUM) {
//添加图片到GridView
mPicList.add(paths.get(i));
}
}
mGridViewAdapter.notifyDataSetChanged();
}
github地址:https://github.com/zhouxu88/WXCircleAddPic
总结:其实原理就是把数据的size+1,做为添加按钮的放置,然后判断下有9张图就不显示添加按钮,并且size也不+1,就这样,一个带添加按钮的GridView就好了~希望对大家的学习有所帮助,也希望大家多多支持。
# Android仿微信朋友圈
# Android朋友圈添加图片
# 的是
# 第三方
# 这是
# 上传
# 也不
# 有个
# 就不
# 再看
# 先把
# 贴出
# 上传图片
# 大家多多
# 就可以
# 正常显示
# 上图
# 来用
# 咋办
# 图片上传
# 主要是
# 实现了
相关文章:
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
山东网站制作公司有哪些,山东大源集团官网?
内网网站制作软件,内网的网站如何发布到外网?
存储型VPS适合搭建中小型网站吗?
如何用PHP快速搭建CMS系统?
如何选择高效便捷的WAP商城建站系统?
如何登录建站主机?访问步骤全解析
制作证书网站有哪些,全国城建培训中心证书查询官网?
定制建站是什么?如何实现个性化需求?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
建站之星后台管理:高效配置与模板优化提升用户体验
表情包在线制作网站免费,表情包怎么弄?
建站之星24小时客服电话如何获取?
建站之星微信建站一键生成小程序+多端营销系统
建站主机选哪种环境更利于SEO优化?
微信推文制作网站有哪些,怎么做微信推文,急?
微信小程序 五星评分(包括半颗星评分)实例代码
如何解决VPS建站LNMP环境配置常见问题?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
制作销售网站教学视频,销售网站有哪些?
如何通过.red域名打造高辨识度品牌网站?
如何快速搭建高效可靠的建站解决方案?
建站主机CVM配置优化、SEO策略与性能提升指南
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
寿县云建站:智能SEO优化与多行业模板快速上线指南
在线教育网站制作平台,山西立德教育官网?
非常酷的网站设计制作软件,酷培ai教育官方网站?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
已有域名如何免费搭建网站?
如何在服务器上配置二级域名建站?
宝塔面板创建网站无法访问?如何快速排查修复?
利用JavaScript实现拖拽改变元素大小
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何制作网站标识牌,动态网站如何制作(教程)?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何用西部建站助手快速创建专业网站?
高端云建站费用究竟需要多少预算?
清除minerd进程的简单方法
,怎么在广州志愿者网站注册?
如何通过FTP空间快速搭建安全高效网站?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
高端建站如何打造兼具美学与转化的品牌官网?
制作门户网站的参考文献在哪,小说网站怎么建立?
微信h5制作网站有哪些,免费微信H5页面制作工具?
网站制作免费,什么网站能看正片电影?
如何通过万网虚拟主机快速搭建网站?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
黑客如何利用漏洞与弱口令入侵网站服务器?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
建站ABC备案流程中有哪些关键注意事项?
*请认真填写需求信息,我们会在24小时内与您取得联系。