android图片裁剪上传图片
㈠ 调用android系统的图片裁剪方式问题和解决方式
调用android系统的图片裁剪方式问题和解决方式:
如果你的程序中使用的图片裁剪方式是这样子的话:
1、调用系统自带的图片裁剪页面,吧图片保存在inetnt中;
2、裁剪完毕通过intentData取出图片
如果使用这种方式,就会遇到一个问题:
在某些手机(本人遇到的情况是小米3)上面无法跳转到系统的图片裁剪页面,或者IntentData是null。
这种方式是把图片放在intent中传递,而intent在安卓中的定义是传递轻量级的数据,显然传递图片是不合适的,高性能的手机可能没问题,性能差点的手机就会出问题了。、
解决方式:
1、用intent传递图片的Uri:
private staticUrimUriFile;
2、裁剪完毕通过Uri取出图片:
这里要注意取图片的方式,小心oom。把规避oom的方式也贴出来:
㈡ Android 图片选择(ImageSelector) (拍照,裁剪,压缩,查看)
1.遍历sdcard文件夹(指定层次深度 searchDeep ),如果文件夹发现图片 , 添加到已搜索到图片的文件列表中,并跳入下一个文件夹搜索
2.使用 ContentResolver 搜索 添加搜索标签(png,jpg,jpeg,gif 等) 优点:更快速
压缩调用
第一步-->
采样率压缩:设置 BitmapFactory.Options.inSampleSize 大小
第二步-->
PNG:尺寸压缩( Config:ARGB_4444 ,工具: Canvas );
JPG:尺寸压缩( Config:ARGB_565 ,工具: Canvas )+压缩质量( bitmap.compress() )
注 :
1.GIF不做压缩处理
2.尺寸压缩:改变宽高(png,jpg)
3.压缩质量:改变文件大小(适用jpg,png无效)