在android中从gallery裁剪图像

在android中从gallery裁剪图像,android,camera,android-camera,crop,resize-crop,Android,Camera,Android Camera,Crop,Resize Crop,当从gallery中选择图像时,我想在应用程序中裁剪图像。我的裁剪代码可以在模拟器中工作,但不能在手机上正常工作。我设置outputX=400,outputY=487。 在我的模拟器中,我得到了分辨率为400 x 487的输出位图,但当我从手机图库中剪切图像时,我得到了分辨率为145 x 177的输出位图。为什么会这样?下面给出了我的裁剪代码 Intent intent = new Intent("com.android.camera.action.CROP"); intent.setType

当从gallery中选择图像时,我想在应用程序中裁剪图像。我的裁剪代码可以在模拟器中工作,但不能在手机上正常工作。我设置outputX=400,outputY=487。 在我的模拟器中,我得到了分辨率为400 x 487的输出位图,但当我从手机图库中剪切图像时,我得到了分辨率为145 x 177的输出位图。为什么会这样?下面给出了我的裁剪代码

Intent intent = new Intent("com.android.camera.action.CROP");

intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

intent.putExtra("crop", "true");
intent.putExtra("aspectX", 500);
intent.putExtra("aspectY", 750);
intent.putExtra("scale", true);
intent.putExtra("outputX", 400);
intent.putExtra("outputY", 487);
intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent,"Complete action using"), PICK_FROM_GALLERY);
关于onActivityResult

if (requestCode == PICK_FROM_GALLERY) {
Bundle extras2 = data.getExtras();
if (extras2 != null) {
Bitmap bm = extras2.getParcelable("data");
imgview.setImageBitmap(photo);}
或参考以下网站以获取更多帮助:


我认为这将解决这个问题


PS:此代码可能适用于所有设备,也可能不适用于所有设备。这段代码依赖于不属于API的代码。裁剪的唯一方法是将代码直接放入应用程序。

@keshav我没有得到确切的答案上面写的代码是从相机裁剪图像。我已经这样做了,我需要从图库中裁剪图像
buttonGallery.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
// call android default gallery
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
// ******** code for crop image
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 0);
intent.putExtra("aspectY", 0);
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 150);

try {

intent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(intent,
"Complete action using"), PICK_FROM_GALLERY);

} catch (ActivityNotFoundException e) {
// Do nothing for now
}
}
});