先上图
点击+号就去选择图片
实际上这个添加本身就是一个ListView或者 RecyclerView
只是布局有些特殊
item
<?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和是不是最后一个添加的图片就可以了。
@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(); } }
这里用到了一个正方形的,容器
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。
本文地址:https://www.stayed.cn/item/12720
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我