老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧,先把工作完成了,再看也来得及,是吧!

在项目中这种添加图片上传的效果应该是非常常见的,后面有个添加的按钮应该让有些童鞋不知道咋办了吧,其实没那么复杂,通过GridView就可以实现了

先说明一下,这里主要是讲添加图片的效果,至于图片选择器用的是第三方库photopicker,6.0权限用的是第三方库EasyPermission

1、首先这是用GridView实现的

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#fff"

android:orientation="vertical">

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" />

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 mList;

private LayoutInflater inflater;

public GridViewAdapter(Context mContext, List 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 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();

}

总结:其实原理就是把数据的size+1,做为添加按钮的放置,然后判断下有9张图就不显示添加按钮,并且size也不+1,就这样,一个带添加按钮的GridView就好了~希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android之仿朋友圈程序,Android仿微信朋友圈添加图片的实例代码相关推荐

  1. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

  2. Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享

    Android调用系统分享和指定app分享-微信朋友圈图文分享和qq分享 标签: Android系统分享QQ分享朋友圈图文分享 2016-09-27 22:54 279人阅读 评论(0) 收藏 举报 ...

  3. 企业微信应用设置可信域名_怎么设置企业微信朋友圈功能?企业微信朋友圈功能有哪些限制?...

    文丨 @语鹦企服私域管家 原创,本文为<企业微信私域流量玩法>专栏第24篇 有小伙伴给小企留言说:企业微信朋友圈功能开放了,请问怎么设置企业微信朋友圈功能?企业微信朋友圈功能有哪些限制? ...

  4. php仿微信朋友圈源码,Android开发仿微信发朋友圈浏览图片效果实例代码

    这篇文章主要介绍了Android仿微信发朋友圈浏览图片效果的相关资料,需要的朋友可以参考下 先看一下效果吧: 下面就来说一下具体怎么实现的: 实现思路1.首先我们要获取数据源,数据源就是我们的每条说说 ...

  5. php支付密码控件,Android高仿微信支付密码输入控件实例代码

    这篇文章主要为大家详细介绍了Android高仿微信支付密码输入控件的具体实现代码,供大家参考,具体内容如下 像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现 ...

  6. android微信朋友圈视频无法播放,微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?...

    微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频功能安卓不能用吗?最近微信更新,用户可以进行分享自己手机里的视频,这一举措受到很多人的喜欢.那么微信朋友圈不能分享手机视频怎么回事?微信朋友圈大视频 ...

  7. android 评论发表情,安卓手机怎么在微信朋友圈评论发表情包?

    核心提示:目前,微信的最新版本更新了朋友圈评论表情包的功能,也就是说用户可以朋友圈开启"斗图模式"啦!但是有些安卓系统的小伙伴发现,自己更新了微信后似乎也不能在朋友圈发评论,具体是 ...

  8. android导出微信朋友圈怎么发文字,微信朋友圈怎么发纯文字?看完这篇文章,你就知道该怎么操作了...

    经常使用微信聊天的朋友,一定会发现明明微信朋友圈只支持发视频或图片,然后配文字发送,为什么有些人的朋友圈可以发送纯文字呢?本期文章就教教大家如何使用微信"发纯文字"的朋友圈. 以安 ...

  9. 后台模拟页面登陆_微信直播小程序后台,微信朋友圈可直达小程序直播了

    独家了解到,微信广告正在测试直播模式,可以帮助商家将直播小程序置于多个广告流量级别,如朋友圈,公众账号和小程序. 这也意味着微信生态系统中的商家不仅可以通过小节目现场直播来运营私有域流量,而且可以利用 ...

  10. 架构之道:3个程序员成就微信朋友圈日均10亿发布量

    前言 截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过100亿.得益于4G网络的发展,以上数据仍有很快的增长,而且相对于PC互联网时代,移动 ...

最新文章

  1. 社交媒体如何破坏了你的生活? | 大咖来了
  2. fft的c语言和matlab对比_Matlab系列之程序控制
  3. android 自定义刷新控件,Android开发中MJRefresh自定义刷新动画效果
  4. Elasticsearch和HDFS 容错机制 备忘
  5. python特性和属性的区别_什么是属性,什么是特性,有何不同?
  6. Java之Socket与HTTP区别
  7. android病毒下载地址,LINE病毒查杀
  8. jsp网页实现自动刷新和自动跳转页面
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的医院管理系统
  10. sed与正则用法收集
  11. pku1157-------LITTLE SHOP OF FLOWERS(简单动态规划题:摆放鲜花使审美价值达到最高)...
  12. WPF TreeView tools
  13. EdgeGallery — MEP — APIs
  14. Consider revisiting the entries above or defining a bean of type in your configuration.
  15. 投影仪的对比度多少合适,当贝X3高亮对比度和电视基本一样
  16. java hotspot tm_Java HotSpot(TM) 64-Bit Server VM warning
  17. 关于在控制面板上软件卸载失败的问题
  18. 模电——三极管各个引脚之间的电压关系
  19. 史上最牛老丈人,三个朝代全是自家人
  20. 升级光伏供应链体系,供应商系统规范供应商管理,促进企业与供应商高效协同

热门文章

  1. 无线投影仪服务器设置方法,无线投影仪怎么连接,看过教程,原来操作这么简单!...
  2. 计算机三维设计大作业模型图,机械制图作业
  3. 计算机控制系统中的Z变换
  4. CentOS 设置chrome浏览器桌面图标
  5. php漂浮广告代码,js 居中漂浮广告_广告代码
  6. dos命令move 移动文件
  7. 绕过cdn探测真实ip方法大全
  8. 百度地图--南京行政区域划分
  9. 如何破解锐捷支持多网卡
  10. C语言入门习题系列一(含答案)