Android添加图片到ListView或者RecyclerView显示
内容摘要
先上图
点击+号就去选择图片
实际上这个添加本身就是一个ListView或者 RecyclerView
只是布局有些特殊
item
<?xml version="1.0" encoding="utf-8"?
点击+号就去选择图片
实际上这个添加本身就是一个ListView或者 RecyclerView
只是布局有些特殊
item
<?xml version="1.0" encoding="utf-8"?
文章正文
先上图
点击+号就去选择图片
实际上这个添加本身就是一个ListView或者 RecyclerView
只是布局有些特殊
item
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | <?xml version= "1.0" encoding= "utf-8" ?> <liu.myrecyleviewchoosephoto.view.SquareRelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:id= "@+id/rootView" android:layout_width= "wrap_content" android:layout_height= "wrap_content" > <RelativeLayout android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_marginLeft= "7dp" android:layout_marginRight= "7dp" android:layout_marginTop= "14dp" android:background= "@drawable/shape_white_bg_corner" > <ImageView android:id= "@+id/ivDisPlayItemPhoto" android:layout_width= "match_parent" android:layout_height= "match_parent" android:contentDescription= "@null" android:scaleType= "centerCrop" android:layout_centerInParent= "true" android:layout_marginRight= "8dp" android:layout_marginLeft= "8dp" android:layout_marginTop= "5dp" android:layout_marginBottom= "5dp" /> <ImageView android:id= "@+id/ivAddPhoto" android:layout_width= "match_parent" android:layout_height= "match_parent" android:layout_centerInParent= "true" android:background= "@color/white" android:scaleType= "centerCrop" android:src= "@mipmap/add_photo_refund" android:visibility= "visible" /> <ImageView android:id= "@+id/ivUploadingBg" android:layout_width= "match_parent" android:layout_height= "match_parent" android:src= "@drawable/shape_grey_bg_corner" android:visibility= "gone" /> <ImageView android:id= "@+id/ivError" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_centerInParent= "true" android:src= "@mipmap/icon_prompt" android:visibility= "gone" /> <TextView android:id= "@+id/tvProgress" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_centerInParent= "true" android:text= "0%" android:textColor= "@color/white" android:textSize= "16sp" android:visibility= "gone" /> </RelativeLayout> <ImageView android:id= "@+id/ivDelete" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_alignParentRight= "true" android:src= "@mipmap/delete_photo" android:visibility= "gone" /> </liu.myrecyleviewchoosephoto.view.SquareRelativeLayout> |
在Adpater中判断一个数据是不是为0和是不是最后一个添加的图片就可以了。
1 2 3 4 5 6 7 8 9 10 | @Override public int getItemCount() { if (mDatas == null || mDatas.size() == 0) { return 1; } else if (mDatas.size() < mMaxNum) { return mDatas.size() + 1; } else { return mDatas.size(); } } |
这里用到了一个正方形的,容器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package liu.myrecyleviewchoosephoto.view; import android.content.Context; import android.util.AttributeSet; import android.widget.RelativeLayout; /** * 正方形的RelativeLayout * Created by 刘楠 on 2016/8/13 0013.16:07 */ public class SquareRelativeLayout extends RelativeLayout { public SquareRelativeLayout(Context context) { super(context); } public SquareRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } public SquareRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //设置自己测量结果 setMeasuredDimension(getDefaultSize(0,widthMeasureSpec),getDefaultSize(0,heightMeasureSpec)); /** * 测量子View的 */ int childWidthSize=getMeasuredWidth(); //高度与宽度一样 widthMeasureSpec =MeasureSpec.makeMeasureSpec(childWidthSize,MeasureSpec.EXACTLY); heightMeasureSpec =widthMeasureSpec; super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } |
这里没有写图片选择器
有兴趣可以看这里
图片选择器:https://github.com/ln0491/PhotoView
源码:https://github.com/ln0491/MyRecyleViewChoosePhoto
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。
代码注释