Android仿微信朋友圈添加圖片的實(shí)例代碼
先上圖,著急用的朋友,直接帶走Demo,先拿來(lái)用吧,畢竟老板催的緊,先把工作完成了,再看也來(lái)得及,是吧!
在項(xiàng)目中這種添加圖片上傳的效果應(yīng)該是非常常見(jiàn)的,后面有個(gè)添加的按鈕應(yīng)該讓有些童鞋不知道咋辦了吧,其實(shí)沒(méi)那么復(fù)雜,通過(guò)GridView就可以實(shí)現(xiàn)了
先說(shuō)明一下,這里主要是講添加圖片的效果,至于圖片選擇器用的是第三方庫(kù)photopicker,6.0權(quán)限用的是第三方庫(kù)EasyPermission
1、首先這是用GridView實(shí)現(xiàn)的
<?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;//因?yàn)樽詈蠖嗔艘粋€(gè)添加圖片的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()) { //代表+號(hào)之前的需要正常顯示圖片 String picUrl = mList.get(position); //圖片路徑 Glide.with(mContext).load(picUrl).into(iv); } else { iv.setImageResource(R.mipmap.zj);//最后一個(gè)顯示加號(hào)圖片 } return convertView; } }
MainActivity
這里只貼出了拿到相冊(cè)返回的圖片的路徑后的處理
//初始化展示上傳圖片的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
總結(jié):其實(shí)原理就是把數(shù)據(jù)的size+1,做為添加按鈕的放置,然后判斷下有9張圖就不顯示添加按鈕,并且size也不+1,就這樣,一個(gè)帶添加按鈕的GridView就好了~希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)動(dòng)態(tài)高斯模糊效果示例代碼
這篇文章主要介紹了Android快速實(shí)現(xiàn)動(dòng)態(tài)模糊效果示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法
這篇文章主要介紹了Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法,本文講解了最簡(jiǎn)單的方法、最通用的方法,需要的朋友可以參考下2015-04-04Android 系統(tǒng)相機(jī)拍照后相片無(wú)法在相冊(cè)中顯示解決辦法
這篇文章主要介紹了Android 系統(tǒng)相機(jī)拍照后相片無(wú)法在相冊(cè)中顯示解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12Android 8.0不能自動(dòng)安裝APK問(wèn)題的解決方法(完美適配)
這篇文章主要給大家介紹了關(guān)于Android 8.0不能自動(dòng)安裝APK問(wèn)題的解決方法(完美適配),這里的自動(dòng)安裝是指下載完成后,自動(dòng)彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07Android實(shí)現(xiàn)自定義ImageView的圓角矩形圖片效果
android顯示圓角矩形的圖片其原理就是首先獲取到圖片的Bitmap,然后進(jìn)行裁剪對(duì)應(yīng)的圓角矩形的bitmap,然后在onDraw()進(jìn)行繪制圓角矩形圖片輸出2018-05-05Android編程設(shè)計(jì)模式之中介者模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之中介者模式,結(jié)合實(shí)例形式詳細(xì)分析了Android中介者模式的概念、原理、使用場(chǎng)景、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-12-12android自動(dòng)生成dimens適配文件的圖文教程詳解(無(wú)需Java工具類)
這篇文章主要介紹了android自動(dòng)生成dimens適配文件,無(wú)需Java工具類,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03