1、仿照微信空间上传图片,显示图片数量以及超过最大,上传按钮隐藏功能

2、上效果图

3、上代码,主要是Adapter类

/**

* Created by zhangyinlei on 2018/3/2 0002.

*/

public class AlbumSelectedShowAdapter extends RecyclerView.Adapter {

private static int TYPE_ADD = 0;//添加图片

private static int TYPE_COMMON = 1;//普通图片展示

private Context context;

private LayoutInflater mLayoutInflater;

//data

private int mMaxAlbum;//最大选择图片的数量

private List mStringList;//图片url集合

public AlbumSelectedShowAdapter(Context context, List mStringList, int maxAlbum) {

this.context = context;

this.mStringList = mStringList;

this.mMaxAlbum = maxAlbum;

this.mLayoutInflater = LayoutInflater.from(context);

}

@Override

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

if (viewType == TYPE_ADD) {

return new ItemViewHolderAdd(mLayoutInflater.inflate(R.layout.item_album_selected_add, parent, false));

} else {

return new ItemViewHolderCommon(mLayoutInflater.inflate(R.layout.item_album_selected_common, parent, false));

}

}

@Override

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

View itemView = null;

if (holder instanceof ItemViewHolderAdd) {

ItemViewHolderAdd itemViewHolderAdd = (ItemViewHolderAdd) holder;

if (position >= mMaxAlbum) {

itemViewHolderAdd.itemView.setVisibility(View.GONE);

} else {

itemViewHolderAdd.tvNum.setText(position + "/" + mMaxAlbum);

itemViewHolderAdd.itemView.setVisibility(View.VISIBLE);

itemView = ((ItemViewHolderAdd) holder).itemView;

}

} else if (holder instanceof ItemViewHolderCommon) {

String url = mStringList.get(position);

Glide.with(context).load(url).apply(RequestOptions.centerCropTransform()).transition(withCrossFade()).into(((ItemViewHolderCommon) holder).ivCommon);

itemView = ((ItemViewHolderCommon) holder).itemView;

}

if (mOnItemClickListener != null && null != itemView) {

itemView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

int position = holder.getLayoutPosition();

mOnItemClickListener.onItemClick(holder.itemView, position);

}

});

}

}

@Override

public int getItemViewType(int position) {

return position == mStringList.size() ? TYPE_ADD : TYPE_COMMON;

}

@Override

public int getItemCount() {

return mStringList.size() + 1;//加一代表最后一个添加图片按钮

}

public static class ItemViewHolderAdd extends RecyclerView.ViewHolder {

private TextView tvNum;

public ItemViewHolderAdd(View itemView) {

super(itemView);

tvNum = itemView.findViewById(R.id.tv_album_selected_num);

}

}

public static class ItemViewHolderCommon extends RecyclerView.ViewHolder {

private ImageView ivCommon;

public ItemViewHolderCommon(View itemView) {

super(itemView);

ivCommon = itemView.findViewById(R.id.iv_album_selected);

}

}

private OnItemClickListener mOnItemClickListener;

public void setOnItemClickListener(OnItemClickListener onItemClickListener) {

mOnItemClickListener = onItemClickListener;

}

public interface OnItemClickListener {

void onItemClick(View view, int position);

}

}

在Activity中使用,recycleView

mStringList = new ArrayList<>();

mAlbumSelectedShowAdapter = new AlbumSelectedShowAdapter(this, mStringList, mMaxAlbum);

mRvAlbumSelected.setLayoutManager(new GridLayoutManager(this, 4));

mRvAlbumSelected.setHasFixedSize(true);

mRvAlbumSelected.setAdapter(mAlbumSelectedShowAdapter);

mAlbumSelectedShowAdapter.setOnItemClickListener(new AlbumSelectedShowAdapter.OnItemClickListener() {

@Override

public void onItemClick(View view, int position) {

if (mStringList.size() == position) {

//选择相册功能

AlbumUtils.choosePicture(SuggestionActivity.this, false, mMaxAlbum - mStringList.size(), true);

} else {

//图片展示界面

}

}

});

}

总结

以上所述是小编给大家介绍的Android仿微信图片上传带加号且超过最大数隐藏功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

android点击加号,Android仿微信图片上传带加号且超过最大数隐藏功能相关推荐

  1. Android 多张图片展示,仿微信图片上传,可以选择多张图片

    我们经常会遇到需要多张图片展示上传的需求 ,如图 这样的需求我已经遇到过多次,个人总结一下,希望大家多多指点,支持选择多张图片 布局:一个GridView <com.zuihou.drunken ...

  2. Android开发之使用GridView+仿微信图片上传功能(附源代码)

    前言:如果转载文章请声明转载自:https://i.cnblogs.com/EditPosts.aspx?postid=7419021  .另外针对有些网站转载本人的文章结果源码链接不对的问题,本人在 ...

  3. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 如果不知道如何上传 ...

  4. android仿微信图片上传进度,android高仿微信发布动态(选择图片)

    [实例简介]Android 超高仿微信图片选择器 [实例截图] [核心代码] public class MainActivity extends Activity implements OnImage ...

  5. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  6. android仿微信图片上传进度,Android开发之模仿微信打开网页的进度条效果(高仿)...

    一,为什么说是真正的高仿? 阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下  "仿微信打开网页的进度条效果",你会看到有很多类似的文章,不过他们有个共同点,就是实 ...

  7. Android使用Retrofit技术仿微信图片上传,可以选择多张图片拍照上传

    Android 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit技术. 使用方法:详见博客 http://blog.csdn.net/u010046908/article/det ...

  8. Android 使用GridView+仿微信图片上传功能(附源代码)

    由于工作要求最近在使用GridView完成图片的批量上传功能,我的例子当中包含仿微信图片上传.拍照.本地选择.相片裁剪等功能,如果有需要的朋友可以看一下,希望我的实际经验能对您有所帮助. 直接上图,下 ...

  9. 微信发送图片php,PHP怎么实现微信图片上传到服务器?

    这篇文章主要介绍了PHP实现微信图片上传到服务器的方法,涉及php基于curl操作图片文件的相关实现技巧,需要的朋友可以参考下 本文实例讲述了PHP实现微信图片上传到服务器的方法.分享给大家供大家参考 ...

最新文章

  1. 在Gridview控件中根据Field Name来取得对应列索引
  2. lucas定理 FOJ 2020 组合
  3. [转帖]不要迷失在技术的海洋中
  4. 网页设计相关计算机语言,title(计算机语言)
  5. Zabbix最佳实践一:Zabbix4.0.2的安装与配置
  6. linux-安装jdk
  7. 手机屏幕宽高像素计算_2020年的智能手机拍照新设计,就全看下半年了
  8. php mysql 备份还原_PHP执行Mysql数据库的备份和还原
  9. 织梦cms仿知名吧站长导航网站模板
  10. 29岁年薪百万,晋升阿里最年轻P8之一,我想分享8点成长经验
  11. iOS谁说我不能执行你
  12. php值班系统,php简单的值日值班处理方法
  13. 资源搜索神器 海量精品资源教程 大大啦啦资源神器
  14. 计算几何——判断点是否在多边形内
  15. BPM就是IT规划与企业战略的最佳匹配
  16. 拔丝芋头的Java学习日记---Day8
  17. JavaScript实现贪吃蛇小游戏
  18. 天水市2021年高考成绩查询,2021年天水高考状元是谁分数多少分,历年天水高考状元名单...
  19. [WHS] Windows Home Server 官方中文站点上线
  20. unity3d中隐藏/显示物体方法总结 – unity3d游戏开发

热门文章

  1. SV_14_Assertions
  2. 武汉理工大学-并行计算-2020年期末复习指南
  3. 零基础HTML教程(10)--写一个画龙点睛的标题
  4. Chrome真机调试安卓和ios
  5. 旅游网小案例:注册(邮件激活)
  6. 《未选择的路:The road not taken》
  7. iOS_仿QQ表情键盘
  8. centos php 中文乱码,XShell连接CentOS 7.2显示中文乱码问题的解决方法
  9. Mobileye闯红灯之后,这些问题值得我们深思
  10. [分享知识]Chrome 键盘快捷键