1

ギャラリーから画像を選択したときに、アプリケーションで画像をトリミングしたいと考えています。トリミング コードはシミュレーターから動作しますが、電話では正しく動作しません。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);}
4

2 に答える 2

0

これで問題は解決すると思います。

http://www.londatiga.net/featured-articles/how-to-select-and-crop-image-on-android/

PS: このコードは、すべてのデバイスで機能する場合と機能しない場合があります。このコードは、API の一部ではないコードに依存しています。クロッピングを行う唯一の方法は、コードをアプリに直接配置することです。

于 2014-01-15T08:14:32.140 に答える