android仿微信图片选择预览裁剪,仿微信图片选择
Android图片选择器,仿微信的图片选择器的样式和效果。
支持图片单选、多选、裁剪形状自定义、裁剪比例设置、解耦图片加载框架。
项目地址:https://github.com/1izheng/ImageSelector
111.jpg
222.jpg
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();
}
}
}
android仿微信图片选择预览裁剪,仿微信图片选择相关推荐
- vue本地上传并预览php,vue.js 实现图片本地预览 裁剪 压缩 上传功能
以下代码涉及 Vue 2.0 及 ES6 语法. 目标 纯 javascrpit 实现,兼容ie9及以上浏览器,在本地做好文件格式.长宽.大小的检测,减少浏览器交互. 现实是残酷的,为了兼容Ie9 还 ...
- H5上传照片、图片及预览裁剪
H5上传照片.图片及预览裁剪 忙里得闲将之前工作中遇到的问题进行总结 要实现该效果主要分三步 一.如何获取图片及照片甚至打开手机摄像头 刚开始做的时候,本人也是一片茫然,怎么获取图片甚至控制摄像机?在 ...
- 微信小程序选择图片和预览图片
作者>:燕潇洒 视频中,老师也是看着官方文档,为学生们讲解,微信提供了系统的方法来选择图片. wx.chooseImage({}) 此方法是用来选择图片的方法,具体使用如下: data: {av ...
- android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...
AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...
- 微信小程序 - 选择图片、预览图片、删除图片
为什么80%的码农都做不了架构师?>>> 小程序开发中你可能会遇到上传的图片首先会选择图片之后预览看下或者不满意需要删除图片,才会提交吧,这样应该是一个比较好的处理方式. 微信 ...
- 仿淘宝中的评价晒单中选择图片可以预览,添加,删除
前一篇文章写了如何把input="file"的默认样式改为自己想要的样式所以这篇是在这个的基础上写的,也就是说改变成了自己想要的样式之后,点击选择图片,可以放在一个div中预览,同 ...
- android 酷狗demo_Android仿酷狗皮肤预览界面的实现(利用canvas缩放的原理)
GitHub_ AnJiaoDe/Scale-Master APKdemo_ AnJiaoDe/Scale-Master/blob/master/app/build/outputs/apk/app-d ...
- 微信小程序-预览图片识别二维码
wx.getImageInfo(Object object) 获取图片信息.网络图片需先配置download域名才能生效. 测试图片地址:http://mmbiz.qpic.cn/mmbiz_png/ ...
- Android 使用CameraX实现预览/拍照/录制视频/图片分析/对焦/缩放/切换摄像头等操作
1. CameraX架构 看官方文档 CameraX架构 有如下这一段话 使用CameraX,借助名为"用例"的抽象概念与设备的相机进行交互. 预览 : 接受用于显示预览的Surf ...
最新文章
- Cpp 对象模型探索 / 多重继承虚函数表分析
- php中字符串分割函数
- YOLOv5算法详解
- 三维插值(MATLAB)——TriScatteredInterp/scatteredInterpolant函数
- DataGridView的DataGridViewComboBoxColumn列点击后触发其他方法
- Linux Bash脚本练习2
- Redis Sentinel实现的机制与原理详解
- 膜拜高手!Python竟然开发命令行版网易云音乐!
- 对接环信踩坑记(环信客服+IMSDk即时通信)
- micropython esp8266 红外控制小车
- episode0519英语课
- 海康威视产品的token更新
- studing method for linux
- java 微秒 时间_Java中时间的计算 年月日小时分钟秒毫秒微秒
- Goddy服务器配置
- web前端培训开发,你必须知道的CSS盒模型
- QT-三色灯状态灯IO状态
- python pip怎么安装包_python怎么用pip安装包
- java.util.stream.Stream案例解读
- 2021年大学生求职热门行业公布,如何拿下高薪工作?
热门文章
- Windows系统下编译torch-points-kernels
- 给女朋友写的简单的公众号推送信息程序
- 腾讯私有云TStack 自动化部署
- win10 共享热点
- C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 【Python】Pyside6简易版教程
- 多窗口自动排列横向纵向排列斜排列多窗口排列工具软件教学
- 计算机表格设置宽度,word表格大小调整固定单元格大小设置——想象力电脑应用...
- [转]华为应对新劳动合同法 万名员工将自选去留[http://news.qq.com/a/20071027/002388.htm 21世纪经济报道]
- iOS App技术支持网址(URL)