-1

私が取り組んでいる Android アプリがあり、組み込みの Crop Image Intent (ギャラリーを使用) を使用して写真をトリミングしています。ユーザーが画像を正方形 (1:1) としてトリミングできるようにする必要があり、後で画像を操作します。ここに私の問題があります: 何らかの理由で、アプリが強制的に閉じられ、NullPointerException で返されることを理解していない場合があります... 時々。これは、新しく作成された (トリミングされた) 画像から URI を取得しようとしたときに発生します。それは非常にランダムな時間に発生するので、それは単にOMEが奇妙な方法で現れているのではないかと考え始めています. とにかく、私は完全に迷っており、実際の回答なしでこの質問を既に行っていますが(NullPointerExceptionが何であるかを除いて)、役に立ちませんでした。ここに質問を投稿しました:以前に尋ねられた質問へのリンク

素晴らしいアドバイスで答えることができれば、それ以外の場合は、標準のギャラリークロップをあきらめて、独自のクロップ方法を書くつもりです. 私はプログラミングにかなり慣れていないので、「カスタム作物アクティビティ」の例やコードスニペットを提案していただければ、それは素晴らしいことです.

PS。Instagramのクロップ方法に似た方法を探しています。これは私のようなやや初心者でもできることだと思いますか? または、それには多くの専門知識が必要ですか?

4

2 に答える 2

1

これにより、画像をピックアップする必要があるギャラリーの種類を尋ねる選択ウィンドウが開き(そのために利用可能なオプションとアプリが表示されます)、いずれかを選択すると、トリミング画面が表示されます.

お役に立てば幸いです...!

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

Uri imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/yourTempDirectory/"));
intent.setData(imageUri);
intent.setType("image/*.");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 200); 
intent.putExtra("outputY", 200);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);

try {       
    startActivityForResult(intent, GALLERY_CAPTURE);
}catch (ActivityNotFoundException e) {
    Log.e("ERROR!!!! :  ",""+e);
}

重要!あなたは宣言しなければなりません

final int GALLERY_CAPTURE = 1;

助けが必要な場合はお知らせください。

于 2013-01-24T09:37:42.517 に答える