hub*_*ert 2 android crop android-intent
作为标题,我想要裁剪尺寸为500*500的图像,它适用于大多数设备(如htc,sonyerrison,motor ..),但三星(Sii/Ace ......).
实际上,三星设备可以在360*360上工作,但是当我调整到500*500时.
当我提出时,行为很奇怪
intent.putExtra("outputX", 500);
intent.putExtra("outputY", 360);
startActivityForResult(intent,PHOTORESOULT),
Run Code Online (Sandbox Code Playgroud)
它神经回归 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);
}
Run Code Online (Sandbox Code Playgroud)
我挣扎了一会儿〜请帮助〜
小智 6
我认为,裁剪的图像太大了.要确定你应该阅读logcat.
我有同样的问题,太大的图像不会传递给onActivityResult并且必须让裁剪的图像保存到磁盘然后单独加载它.
简单地省略
intent.putExtra("return-data", true);
Run Code Online (Sandbox Code Playgroud)
并设定
Uri destination;
// some code to retriev an valid Uri
intent.putExtra(MediaStore.EXTRA_OUTPUT, destination);
Run Code Online (Sandbox Code Playgroud)
代替.确保Uri目标指向文件.
| 归档时间: |
|
| 查看次数: |
6279 次 |
| 最近记录: |