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 App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例
這篇文章主要介紹了Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例,Android中自帶的JSONObject非常好用,需要的朋友可以參考下2016-03-03
Android編程中避免內(nèi)存泄露的方法總結(jié)
這篇文章主要介紹了Android編程中避免內(nèi)存泄露的方法總結(jié),本文講解了最可能造成內(nèi)存泄露的幾個(gè)點(diǎn),并總結(jié)出如何應(yīng)對(duì)這些內(nèi)存泄露,需要的朋友可以參考下2014-08-08
Android應(yīng)用中通過(guò)Layout_weight屬性用ListView實(shí)現(xiàn)表格
這篇文章主要介紹了Android應(yīng)用中通過(guò)Layout_weight屬性用ListView實(shí)現(xiàn)表格的方法,文中對(duì)Layout_weight屬性先有一個(gè)較為詳細(xì)的解釋,需要的朋友可以參考下2016-04-04
android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解
這篇文章主要介紹了android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android AutoCompleteTextView控件使用實(shí)例
AutoCompleteTextView這個(gè)控件用于輸入框的自動(dòng)完成提示,非常適合搜索框等。它本質(zhì)上是個(gè)EditText,實(shí)際上它也是從EditText繼承的,使用起來(lái)也十分簡(jiǎn)單2014-04-04

