Android自定义View简单实现多图片选择控件.doc
文本预览下载声明
Android自定义View 简单实现多图片选择控件
前言
相信很多朋友在开发中都会遇到图片上传的情况,尤其是多图上传,最
经典的莫过于微信的图片选择了。所有很多情况下会使用到多图选择。
所以就有了这篇文章,今天抽点时间写了个控件。
支持自定义选择图片的样式
支持设置图片选择数量
支持图片预览,删除
支持图片拍照
先来看看效果
实现分析
假如不定义控件,我们要实现这样一个功能,无非是写个GridView在item点击的时候去显示图片进行选择,在返回界面的时候进行GridView的数据刷新。我们把这些逻辑写在我们自定义的GridView中,就成了一个新的控件。
1、GridView的效果展示,逻辑实现。
public class ImagePickerView extends GridView{
//图片选择数量
int maxImageSize = 9;
//添加item布局
private int noImgResource;
//列选择数量
private int columnNumber = 3;
Activity context;
ImagesAdapter adapter;
ListString imageList;//图片选择list
private static final int TYPE_SHOW_ADD = 0;
private static final int TYPE_NO_SHOW_ADD = 1;
private boolean isShowAdd = true;
int imageGridSize;
public void setNoImgResource(int noImgResource) {
this.noImgResource = noImgResource;
}
public void setColumnNumber(int columnNumber) {
if (columnNumber5){
columnNumber = 5;
}
this.columnNumber = columnNumber;
this.setNumColumns(columnNumber);
}
public void setShowAdd(boolean showAdd) {
isShowAdd = showAdd;
}
public void setImageList(ListString imageList) {
this.imageList = imageList;
adapter.setImageList(imageList);
}
public ListString getImageList() {
return imageList;
}
public ImagePickerView(Context context) {
this(context,null);
}
public ImagePickerView(Context context, AttributeSet attrs) {
this(context,attrs,0);
}
/**
* 初始化ImagePickerView的一些信息
* @param context
* @param attrs
* @param defStyle
*/
public ImagePickerView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = (Activity) context;
adapter = new ImagesAdapter();
this.setAdapter(adapter);
if (imageList==null){
imageList = new ArrayList();
}
this.setNumColumns(columnNumber);
this.
显示全部