Android 我想裁剪尺寸为 500*500 的图像,它适用于除三星以外的所有设备
Posted
技术标签:
【中文标题】Android 我想裁剪尺寸为 500*500 的图像,它适用于除三星以外的所有设备【英文标题】:Android I want to crop a image in size 500*500,It works on all device but samsung 【发布时间】:2011-12-15 10:14:29 【问题描述】:作为标题,我想裁剪尺寸为 500*500 的图像, 它适用于大多数设备(如 htc、sonyerrison、motors..),但适用于三星(Sii/Ace...)。
实际上,三星设备可以在 360*360 上工作,但是当我调整到 500*500 时。
当我放的时候,行为很奇怪
intent.putExtra("outputX", 500);
intent.putExtra("outputY", 360);
startActivityForResult(intent,PHOTORESOULT),
它神经兮兮地回到onActivityResult()
这是裁剪代码,我确信该 uri 中有一张图片
public void startPhotoZoom(Uri uri)
Bitmap bitmap =null;
try
bitmap = MediaStore.Images.Media.getBitmap(
this.getContentResolver(), uri);
Log.v("cropImage","Heigh="+bitmap.getHeight()+" Width="+bitmap.getWidth());
catch (FileNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
int width=bitmap.getWidth();
int height=bitmap.getHeight();
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, IMAGE_UNSPECIFIED);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
if(width < 500 || height < 500)
if(width <= height)
intent.putExtra("outputX", width);
intent.putExtra("outputY", width);
Log.v("cropImage","outputX="+width+" outputY="+width);
else
intent.putExtra("outputX", height);
intent.putExtra("outputY", height);
Log.v("cropImage","outputX="+height+" outputY="+height);
else
intent.putExtra("outputX", 360);
intent.putExtra("outputY", 360);
intent.putExtra("noFaceDetection", true);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, PHOTORESOULT);
我挣扎了一会儿~ 请帮忙~
【问题讨论】:
请在下面标记答案,因为它是正确的。另请查看:***.com/questions/12758425/… 了解更多详情 【参考方案1】:我认为,裁剪后的图像太大了。可以肯定的是,您应该阅读 logcat。
我有同样的问题,太大的图像不会传递给 onActivityResult 并且不得不让裁剪的图像保存到磁盘然后单独加载。
直接省略
intent.putExtra("return-data", true);
并设置
Uri destination;
// some code to retriev an valid Uri
intent.putExtra(MediaStore.EXTRA_OUTPUT, destination);
相反。确保 Uri 目标指向一个文件。
【讨论】:
【参考方案2】:你可以这样改变,你会从onActivityResult()中得到准确的裁剪图像
intent.putExtra("return-data", false);
【讨论】:
以上是关于Android 我想裁剪尺寸为 500*500 的图像,它适用于除三星以外的所有设备的主要内容,如果未能解决你的问题,请参考以下文章