这是以下代码来裁剪我正在使用的图像:
Display display = getWindowManager().getDefaultDisplay();
mOutputX = display.getWidth();
mOutputY = display.getHeight();
chooseImage.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("scale", true);
intent.putExtra("outputX", mOutputX);
intent.putExtra("outputY", mOutputY);
intent.putExtra("aspectX", mOutputX);
intent.putExtra("aspectY", mOutputY);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Utils.newImageFile(getApplicationContext()));
intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
intent.putExtra("setWallpaper", true);
startActivityForResult(intent, REQ_CODE_PICK_IMAGE);
return false;
}
});
此代码在我的 ICS 设备(Nexus S)上完美运行;覆盖矩形保持显示比例(intent.putExtra(“aspectX”,mOutputX);intent.putExtra(“aspectY”,mOutputY);)并且图像的输出格式被调整为显示分辨率以减小尺寸。
但在 android 2.3.3 设备 (Wildfire S) 上,裁剪矩形是一个正方形,并且不保持与/高度比例的显示。另一方面,输出格式是正确的(320x480)。