Android大图片、缩略图剪裁解决方案
来源:互联网 发布:网络流行歌曲在线试听 编辑:程序博客网 时间:2024/05/18 01:49
很多同学进行Android开发的时候,不可避免的会遇到图片的剪裁,比如剪裁头像。
怎么打开照相机或者打开图库本文暂时不讲,本文主要介绍,剪裁时遇到的问题。
剪裁界面的参数设置
我们知道,此类图片的来源有拍照和图库,而可以采取的方式有
- 使用Bitmap并返回数据
- 使用Uri不返回数据
我们可以用以下代码打开系统提供的剪裁界面
Intent intent = null;intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");intent.putExtra("crop", "true");//剪裁框比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);//输出的宽和高(对应输出图的质量)intent.putExtra("outputX", outputX);intent.putExtra("outputY", outputY);//是否保存比例intent.putExtra("scale", true);//将URI指向相应的fileintent.putExtra(MediaStore.EXTRA_OUTPUT, uri);//是否将数据保留在Bitmap中返回intent.putExtra("return-data", true);intent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG.toString());intent.putExtra("noFaceDetection", true); // no face detectionactivity.startActivityForResult(intent, 3);
其中的outputX与outputY为输出的图大小,数值越大,图片的质量越高。
而根据经验,return-data设为true时,如果output大于400,很可能造成程序的闪退。
缩略图
对于缩略图,我们对画质的要求不高,我们可以将return-data设为true。这时,你将会获得一个与内部数据关联的Action,并且Bitmap以此方式返回。
可以通过以下代码,在onActivityResult中获取到Bitmap
Bundle extras = data.getExtras();Bitmap bitmap = (Bitmap) extras.get("data");
大图
如果我们想截取的图为大图,此时对像素的要求比较高,需要将output设得比较大(超过400),这时,我们就要将return-data设为false。这时,我们就只能通过uri来得到图片了。
我们可以用MediaStore.EXTRA_OUTPUT关联到一个Uri,在onActivityResult中,可以通过以下代码得到Bitmap
Bitmap bitmap = null; try { //通过uri直接获取bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imgUri); } catch (IOException e) { e.printStackTrace(); }
而outputX和outputY我们都可以设为大于400的数,得到质量较高的图片。
阅读全文
1 0
- Android大图片、缩略图剪裁解决方案
- Android大图片裁剪解决方案
- Android大图片裁剪解决方案
- Android大图片裁剪解决方案
- Android大图片裁剪解决方案
- Android大图片裁剪解决方案
- Android大图片裁剪解决方案
- android Android大图片裁剪终极解决方案
- Android大图片裁剪终极解决方案
- android加载大图片 webview解决方案
- Android大图片裁剪终极解决方案
- Android大图片裁剪终极解决方案
- Android大图片裁剪终极解决方案
- Android大图片裁剪终极解决方案
- Android的Btimap处理大图片解决方案
- Android大图片裁剪终极解决方案
- Android大图片裁剪终极解决方案
- 原理分析 :Android大图片裁剪解决方案
- (转)解决Android-SDK Manager闪退
- Python入门(基础语法)
- vscode运行c++ 代码
- java List<String>的初始化
- 防止网页过快刷新-CC攻击
- Android大图片、缩略图剪裁解决方案
- 发现新世界
- 欧拉函数
- Excel表格vlookup函数查不到数据的原因总结
- EF基于方法的查询语法
- shell命令行快捷键
- unity_NGUI系统学习(一)_界面初始&Label组件
- 第五周——项目一—建立顺序栈算法库
- Java大文件读取的几种方法