0

描画可能な画像を開いてインテントをトリミングしようとしています。

しかし、私はこのエラーが発生します:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP dat=android.resource:/com.example.jain/drawable/b typ=image/* (has extras) }

コード:

final Uri selectedImage = Uri.parse("android.resource:/com.example.jain/drawable/b");
    final Intent intent = new Intent("com.android.camera.action.CROP");

    intent.setDataAndType(selectedImage, "image/*");

    intent.putExtra("crop", "true");
    intent.putExtra("scale", true);

    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);

    intent.putExtra("outputX", width);
    intent.putExtra("outputY", width);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, FileUtils.getTempUri());
    intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
            startActivityForResult(intent, 1);
4

1 に答える 1

0

この方法を試してください:

Uri imgUri=Uri.parse("android.resource://your.package.name/"+R.drawable.image);
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", 80);  
intent.putExtra("outputY", 80);  
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);

your.package.name あなたの場合はパッケージ名を次のように置き換えますcom.example.jain

Androidで画像を選択してトリミングする方法は、画像をトリミングする良い例です。

次に、Activity の onActivityResult() メソッドで必要なことを処理します。出力ファイルはトリミングされた画像である必要があります。

デバイスがサポートしているかどうかは、デバイスによって異なります。このインテント アクションは、内部 API の一部ではありません。一部のメーカーは独自のギャラリー アプリを提供しているため、ユーザーのデバイスがインテントを認識するかどうかを知る方法はありません。これを忘れないでください!! :)

于 2013-08-14T12:27:29.107 に答える