0

画像をトリミングしたいのですが、これを実装できます。

私のコードは

Intent cropIntent = new Intent(Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);         
        cropIntent.setDataAndType(fileUri, "image/*");
        // set crop properties
        cropIntent.putExtra("crop", "true");    
        cropIntent.putExtra("return-data", true);       
        startActivityForResult(cropIntent, CROP_PIC);

fileUriギャラリーからトリミングしたい画像のパスのURIが含まれています。

このコードを使用すると、画像を選択するアプリケーションを選択するためのアラートが開きます。すでに画像パスを渡しているのに、なぜアプリケーションを選択して画像を開くように求めているのか疑問に思っています。(ギャラリー経由で) アプリケーションを選択すると、ギャラリーから画像を選択する必要があります。トリミングします。

開くアプリケーションを選択するように求めることなく、切り抜きオプションで画像を開くだけのソリューションが必要ですか?

出来ますか?それを達成するのを手伝ってください...

4

2 に答える 2

1

これを試してください:

     String filename = "image.png";
     String path = "/mnt/sdcard/" + filename;
     File f = new File(path);  //  
     Uri imgUri= Uri.fromFile(f);  
     Intent intent = new Intent("com.android.camera.action.CROP");  
            intent.setDataAndType(imgUri, "image/*");  
            intent.putExtra("crop", "true");  
            intent.putExtra("aspectX", 1);  
            intent.putExtra("aspectY", 1);  
            intent.putExtra("outputX", 50);  
            intent.putExtra("outputY", 50);  
            intent.putExtra("return-data", true);
            startActivityForResult(intent, 1);
于 2015-07-20T06:34:57.100 に答える
0

各作物の動作が異なるため、ネイティブ作物を使用することは良い解決策ではありません。ファイルを保存できない、アスペクト比が正しくないなどのエラーが発生しました。他にもエラーがある可能性があります。
ギャラリーから写真を選んだ後、カスタムクロップライブラリを使用するのが最善の解決策だと思います。https://github.com/jdamcd/android-cropまたはhttps://github.com/lvilani/android-cropimageまたはhttps://github.com/edmodo/cropper
のような例を含むいくつかの優れたライブラリがあります

于 2015-07-20T07:29:28.397 に答える