android – 在Droid X上裁剪图片将结果图像设置为壁纸

在尝试裁剪用户从其库中选择的图像时,我遇到了程序问题.到目前为止这个问题只出现在Droid X上运行时,因为在原始机动车Droid上运行正常.

基本上问题是在运行裁剪意图时发生.一旦用户裁剪了照片并单击了保存按钮,它就会用保存的裁剪图像替换主屏幕上的壁纸!它不会在moto机器人或模拟器上执行此操作.以下是裁剪并将图片保存到SD卡的代码:

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode ==1){
if (resultCode == Activity.RESULT_OK) {
  Intent i = new Intent("com.android.camera.action.CROP");
  i.setData(data.getData());
  i.putExtra("noFaceDetection", true);
  i.putExtra("outputX", 80);
  i.putExtra("outputY", 80);
  i.putExtra("aspectX", 1);
  i.putExtra("aspectY", 1);
  i.putExtra("scale", true);


if(selectedImageString == null){
      ContentValues values = new ContentValues();
      values.put(android.provider.MediaStore.Images.Media.TITLE, "Temp_Icon1");
      values.put(android.provider.MediaStore.Images.Media.BUCKET_ID, "Temp_Icons");
      values.put(android.provider.MediaStore.Images.Media.BUCKET_DISPLAY_NAME,"Temp_Icons");
      values.put(android.provider.MediaStore.Images.Media.IS_PRIVATE, 1);
      selectedImageString = getContentResolver().insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values).toString();
  }
  i.putExtra("output", Uri.parse(selectedImageString));
  startActivityForResult(i, 2);
}
}
 if(requestCode == 2){
 if (resultCode == Activity.RESULT_OK){
  uriPath = Uri.parse(selectedImageString);
  imageView.setImageURI(uriPath);
 }
}

}

有人可以帮我这个吗?

解决方法:

即使使用上面提到的“输出”选项,我也可以验证Droid X是否对我做了同样的事情.到目前为止,我还没有找到解决方法,并且还会考虑阻止Droid X手机的裁剪功能.它很惭愧在这里不起作用.

通过他们的方式,你可以尝试以下……

i.putExtra("return-data", true);

这将返回返回的intent中的图像.您可以通过以下方式访问它…

BitMap BM = data.getParcelableExtra("data");

但是,Galaxy S系列手机不支持此功能.无论如何,它都会返回一个空包裹.所以,我还没有找到好的解决方案.

上一篇:php – 调整图像大小以完全适合确定的框


下一篇:android – 裁剪到正方形