Android仿微信圖片上傳帶加號(hào)且超過(guò)最大數(shù)隱藏功能
1、仿照微信空間上傳圖片,顯示圖片數(shù)量以及超過(guò)最大,上傳按鈕隱藏功能
2、上效果圖
3、上代碼,主要是Adapter類
/** * Created by zhangyinlei on 2018/3/2 0002. */ public class AlbumSelectedShowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static int TYPE_ADD = 0;//添加圖片 private static int TYPE_COMMON = 1;//普通圖片展示 private Context context; private LayoutInflater mLayoutInflater; //data private int mMaxAlbum;//最大選擇圖片的數(shù)量 private List<String> mStringList;//圖片url集合 public AlbumSelectedShowAdapter(Context context, List<String> 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;//加一代表最后一個(gè)添加圖片按鈕 } 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) { //選擇相冊(cè)功能 AlbumUtils.choosePicture(SuggestionActivity.this, false, mMaxAlbum - mStringList.size(), true); } else { //圖片展示界面 } } }); }
總結(jié)
以上所述是小編給大家介紹的Android仿微信圖片上傳帶加號(hào)且超過(guò)最大數(shù)隱藏功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android Studio中Logcat寫(xiě)入和查看日志
大家好,本篇文章主要講的是Android Studio中Logcat寫(xiě)入和查看日志,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01Android模擬實(shí)現(xiàn)滑動(dòng)解鎖界面
這篇文章主要為大家詳細(xì)介紹了Android模擬實(shí)現(xiàn)滑動(dòng)解鎖界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Android自定義有限制區(qū)域圖例角度自識(shí)別涂鴉工具類
這篇文章主要為大家介紹了Android自定義有限制區(qū)域圖例角度自識(shí)別涂鴉工具類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android Compose學(xué)習(xí)之繪制速度表盤
這篇文章主要為大家詳細(xì)介紹了Android Compose繪制速度表盤的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-11-11Android實(shí)現(xiàn)可輸入數(shù)據(jù)的彈出框
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可輸入數(shù)據(jù)的彈出框,文章提供了兩種方式,示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01詳解Andorid開(kāi)發(fā)中反射機(jī)制是怎么一回事
反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任何一個(gè)類,都可以知道這個(gè)類的所有屬性和方法,對(duì)于任何一個(gè)對(duì)象,都可以調(diào)用它所有的方法和屬性,修改部分類型信息,這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能稱為Java的反射機(jī)制2022-11-11安卓開(kāi)發(fā)之mqtt協(xié)議實(shí)例代碼
下面小編就為大家分享一篇安卓開(kāi)發(fā)之mqtt協(xié)議實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Android ListView適配器(Adapter)優(yōu)化方法詳解
這篇文章主要介紹了Android ListView優(yōu)化方法詳解的相關(guān)資料,這里舉例說(shuō)明該如何對(duì)ListView 進(jìn)行優(yōu)化,具有一定的參考價(jià)值,需要的朋友可以參考下2016-11-11Android實(shí)現(xiàn)帶簽到贏積分功能的日歷
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)帶簽到贏積分功能的日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05