ユーザーがギャラリーから選択した画像を切り抜こうとすると、プログラムで問題が発生します。これまでのところ、この問題はDroid Xで実行している場合にのみ発生します。これは、元のmotoDroidで実行すると正常に機能するためです。
基本的に、この問題は、トリミングインテントが実行されているときに発生します。ユーザーが写真を切り抜いて保存ボタンをクリックすると、メイン画面の壁紙が保存された切り抜かれた画像に置き換えられます。モトドロイドやエミュレーターではこれを行いません。以下は、画像をトリミングして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);
}
}
}
誰かがこれを手伝ってくれませんか?