Android仿微信朋友圈添加圖片的實(shí)例代碼
先上圖,著急用的朋友,直接帶走Demo,先拿來用吧,畢竟老板催的緊,先把工作完成了,再看也來得及,是吧!

在項(xiàng)目中這種添加圖片上傳的效果應(yīng)該是非常常見的,后面有個添加的按鈕應(yīng)該讓有些童鞋不知道咋辦了吧,其實(shí)沒那么復(fù)雜,通過GridView就可以實(shí)現(xiàn)了
先說明一下,這里主要是講添加圖片的效果,至于圖片選擇器用的是第三方庫photopicker,6.0權(quán)限用的是第三方庫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)樽詈蠖嗔艘粋€添加圖片的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<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,就這樣,一個帶添加按鈕的GridView就好了~希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)動態(tài)高斯模糊效果示例代碼
這篇文章主要介紹了Android快速實(shí)現(xiàn)動態(tài)模糊效果示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01
Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法
這篇文章主要介紹了Android中PopupWindow響應(yīng)返回鍵并關(guān)閉的2種方法,本文講解了最簡單的方法、最通用的方法,需要的朋友可以參考下2015-04-04
Android 系統(tǒng)相機(jī)拍照后相片無法在相冊中顯示解決辦法
這篇文章主要介紹了Android 系統(tǒng)相機(jī)拍照后相片無法在相冊中顯示解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12
Android 8.0不能自動安裝APK問題的解決方法(完美適配)
這篇文章主要給大家介紹了關(guān)于Android 8.0不能自動安裝APK問題的解決方法(完美適配),這里的自動安裝是指下載完成后,自動彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細(xì),需要的朋友可以參考下2018-07-07
Android實(shí)現(xiàn)自定義ImageView的圓角矩形圖片效果
android顯示圓角矩形的圖片其原理就是首先獲取到圖片的Bitmap,然后進(jìn)行裁剪對應(yīng)的圓角矩形的bitmap,然后在onDraw()進(jìn)行繪制圓角矩形圖片輸出2018-05-05
Android編程設(shè)計(jì)模式之中介者模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之中介者模式,結(jié)合實(shí)例形式詳細(xì)分析了Android中介者模式的概念、原理、使用場景、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-12-12
android自動生成dimens適配文件的圖文教程詳解(無需Java工具類)
這篇文章主要介紹了android自動生成dimens適配文件,無需Java工具類,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03

