android 九宫格图片工具,Android 图片选择、预览、九宫格图片控件、拖拽排序九宫格图片控件...

ee2194f4673f

7d54831e-5d92-11e6-83d0-4049039e0899.gif

将 MeiqiaSDK-Android[https://github.com/Meiqia/MeiqiaSDK-Android] 里的图库单独抽出来开源,将其中的 GridView、ListView 和 RelativeLayout 换成 RecyclerView 和 Toolbar,方便在以后的项目中直接依赖使用。Demo 中模仿了微信朋友圈的部分功能,详细用法请查看 Demo。希望能该库帮正在做这几个功能的猿友节省开发时间。

单图选择

多图选择

拍照选择

图片选择预览(支持微博长图)、缩放查看

图片预览(支持微博长图)、缩放查看

支持 glide、picasso、universal-image-loader、xutils 图片加载库

支持配置列表滚动时是否暂停加载图片,列表停止滚动时恢复加载图片(用 xutils 作为图片加载库时该配置无效)

正方形、圆形头像、带边框的圆形头像控件

朋友圈列表界面的九宫格图片控件

发布朋友圈界面的可拖拽排序的九宫格图片控件

覆盖相应的资源文件来定制界面

1.添加 Gradle 依赖

「latestVersion」指的是左边这个 maven-central 徽章后面的「数字」,请自行替换。请不要再来问我「latestVersion」是什么了

由于需要支持微博长图预览,该库中已经引入了 PhotoView 的源码并进行了修改,所以你的项目中就不要再重复引入 PhotoView 了

dependencies {

compile 'com.android.support:appcompat-v7:25.1.0'

compile 'com.android.support:recyclerview-v7:25.1.0'

compile 'cn.bingoogolapple:bga-adapter:1.1.5@aar'

compile 'cn.bingoogolapple:bga-photopicker:latestVersion@aar'

// 必须依赖下面四个图片加载库中的某一个

compile 'com.github.bumptech.glide:glide:3.7.0'

// compile 'com.squareup.picasso:picasso:2.5.2'

// compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

// compile 'org.xutils:xutils:3.3.36'

}

2.接口说明

/**

* @param context 应用程序上下文

* @param imageDir 拍照后图片保存的目录。如果传null表示没有拍照功能,如果不为null则具有拍照功能,

* @param maxChooseCount 图片选择张数的最大值

* @param selectedImages 当前已选中的图片路径集合,可以传null

* @param pauseOnScroll 滚动列表时是否暂停加载图片

* @return

*/

public static Intent newIntent(Context context, File imageDir, int maxChooseCount, ArrayList selectedImages, boolean pauseOnScroll)

/**

* 获取已选择的图片集合

*

* @param intent

* @return

*/

public static ArrayList getSelectedImages(Intent intent)

/**

* 获取查看多张图片的intent

*

* @param context

* @param saveImgDir 保存图片的目录,如果传null,则没有保存图片功能

* @param previewImages 当前预览的图片目录里的图片路径集合

* @param currentPosition 当前预览图片的位置

* @return

*/

public static Intent newIntent(Context context, File saveImgDir, ArrayList previewImages, int currentPosition)

/**

* 获取查看单张图片的intent

*

* @param context

* @param saveImgDir 保存图片的目录,如果传null,则没有保存图片功能

* @param photoPath 图片路径

* @return

*/

public static Intent newIntent(Context context, File saveImgDir, String photoPath)

自定义属性说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NineGridImageView 是一个九宫格图片控件。用法1. 首先添加依赖compile 'com.jaeger.ninegridimageview:library:1.0.0'2. 在布局文件中添加 NineGridImageView, 如下所示:nineGridImageView.setAdapter(nineGridViewAdapter);下面是 NineGridImageViewAdapter.class 的源码:public abstract class NineGridImageViewAdapter {     protected abstract void onDisplayImage(Context context, ImageView imageView, T t);     protected void onItemImageClick(Context context, int index, List list) {          }     protected ImageView generateImageView(Context context) {         GridImageView imageView = new GridImageView(context);         imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);         return imageView;     }}T 是你图片的数据类型, 你可以简单的使用 String 类型也可以是你自定义的类型;你必须重写 onDisplayImage(Context context, ImageView imageView, T t) 方法去设置显示图片的方式, 你可以使用 Picasso、Glide 、ImageLoader 或者其他的图片加载库,你也可以给 ImageView 设置一个占位图;如果你需要处理图片的点击事件,你可以重写 onItemImageClick(Context context, int index, List list) 方法,加上你自己的处理逻辑;如果你要使用自定义的 ImageView,你可以重写 generateImageView(Context context) 方法, 去生成自定的 ImageView。下面是一段示例代码:private NineGridImageViewAdapter mAdapter = new NineGridImageViewAdapter() { @Override protected void onDisplayImage(Context context, ImageView imageView, Photo photo) { Picasso.with(context)                     .load(photo.getSmallUrl)                     .placeholder(R.drawable.ic_default_image)                     .into(imageView);             }         @Override         protected ImageView generateImageView(Context context) {             return super.generateImageView(context);         }         @Override         protected void onItemImageClick(Context context, int index, List photoList) {            showBigPicture(context, photoList.get(index).getBigUrl());         }     };         ... mNineGridImageView.setAdapter(mAdapter);...4. 给 NineGridImageView 设置图片数据:nineGridImageView.setImagesData(List imageDataList);图片展示:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值