android仿微信图片选择预览裁剪,仿微信图片选择

Android图片选择器,仿微信的图片选择器的样式和效果。

支持图片单选、多选、裁剪形状自定义、裁剪比例设置、解耦图片加载框架。

项目地址:https://github.com/1izheng/ImageSelector

6ea8800e198e

111.jpg

6ea8800e198e

222.jpg

6ea8800e198e

333.jpg

1、引入依赖

build.gradle在添加以下代码

compile 'com.yjz:ImageSelector:1.0.1'

2、配置AndroidManifest.xml

//储存卡的读写权限

//调用相机权限

3、使用

初始化图片加载库

项目的Application中设置图片加载库

public class App extends Application {

@Override

public void onCreate() {

super.onCreate();

//设置图片加载框架

ImageSelector.getInstance().setImageLoader(new GlideImageLoader());

}

}

新建类实现ImageLoader接口

//我这里使用Glide库,其他库一样的道理

public class GlideImageLoader implements ImageLoader {

@Override

public void displayImage(Context context, String path, ImageView imageView) {

Glide.with(context).load(new File(path))

.error(R.drawable.default_error)

.placeholder(R.drawable.default_error)

.diskCacheStrategy(DiskCacheStrategy.ALL)

.centerCrop()

.into(imageView);

}

/**

* 显示预览大图

* @param context

* @param path

* @param imageView

*/

@Override

public void displayPreviewImage(Context context, String path, ImageView imageView) {

Glide.with(context).load(new File(path))

.diskCacheStrategy(DiskCacheStrategy.ALL)

.into(imageView);

}

}

调用

ImageSelector.builder()

.setCrop(true) //是否裁剪 默认false

.setSingleMode(true) //是否单选

.setCropCircle(false) //是否裁剪圆形 默认true:矩形

.setWhRatio(0.5f) //高宽比 0.5 表示 高/宽 = 0.5 默认1.0f即正方形

.setDefaultStartCamera(false) //是否直接启动相机

.setMaxCount(9) //最大选择数量

.setMustCount(1) //必选数量

.setSelected(new ArrayList()) //默认选择图片集合

.start(MainActivity.this, REQUEST_CODE);

方法

方法名称

描述

参数类型

默认值

setCrop

是否裁剪

boolean

false

setCropCircle

裁剪形状圆形

boolean

false(方形)

setWhRatio

高宽比(高/宽)

float

1.0f

setMaxCount

最大选择数量

int

9

setSingleMode

是否单选模式

boolean

false

setDefaultStartCamera

是否直接拍照

boolean

false

showFirstCamera

第一个位置是否显示相机

boolean

true

setSelected

默认选择图片集合

-

-

接收选择结果

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

if (data != null && requestCode == REQUEST_CODE) {

final List images = data.getStringArrayListExtra(ImageSelector.EXTRA_RESULT);

Toast.makeText(this, "选择数据长度->:" + images.size(), Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值