Android仿微信朋友圈添加圖片的實例代碼
先上圖,著急用的朋友,直接帶走Demo,先拿來用吧,畢竟老板催的緊,先把工作完成了,再看也來得及,是吧!
在項目中這種添加圖片上傳的效果應該是非常常見的,后面有個添加的按鈕應該讓有些童鞋不知道咋辦了吧,其實沒那么復雜,通過GridView就可以實現了
先說明一下,這里主要是講添加圖片的效果,至于圖片選擇器用的是第三方庫photopicker,6.0權限用的是第三方庫EasyPermission
1、首先這是用GridView實現的
<?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;//因為最后多了一個添加圖片的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
總結:其實原理就是把數據的size+1,做為添加按鈕的放置,然后判斷下有9張圖就不顯示添加按鈕,并且size也不+1,就這樣,一個帶添加按鈕的GridView就好了~希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android中PopupWindow響應返回鍵并關閉的2種方法
這篇文章主要介紹了Android中PopupWindow響應返回鍵并關閉的2種方法,本文講解了最簡單的方法、最通用的方法,需要的朋友可以參考下2015-04-04Android 系統(tǒng)相機拍照后相片無法在相冊中顯示解決辦法
這篇文章主要介紹了Android 系統(tǒng)相機拍照后相片無法在相冊中顯示解決辦法的相關資料,需要的朋友可以參考下2016-12-12Android 8.0不能自動安裝APK問題的解決方法(完美適配)
這篇文章主要給大家介紹了關于Android 8.0不能自動安裝APK問題的解決方法(完美適配),這里的自動安裝是指下載完成后,自動彈出安裝界面,而不是靜默安裝APK,文中介紹的非常詳細,需要的朋友可以參考下2018-07-07Android實現自定義ImageView的圓角矩形圖片效果
android顯示圓角矩形的圖片其原理就是首先獲取到圖片的Bitmap,然后進行裁剪對應的圓角矩形的bitmap,然后在onDraw()進行繪制圓角矩形圖片輸出2018-05-05android自動生成dimens適配文件的圖文教程詳解(無需Java工具類)
這篇文章主要介紹了android自動生成dimens適配文件,無需Java工具類,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03