3

携帯電話のデフォルトのイメージビュー アプリケーション (ギャラリーなど) を使用して、ドローアブル フォルダー内の画像を開きたいと考えています。

私の画像の場所: drawable/image.png

コード:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(""), "image/*");
startActivity(intent);

画像ファイルを見るには Uri.parse 関数に何を書く必要がありますか?

4

3 に答える 3

4

これを行うには、drawable フォルダー内の画像を SD カードにコピーしてから、SD カード内のファイルのパスをインテントに指定する必要があります。

コードは次のとおりです。

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.imagename);

        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);

        File f = new File(Environment.getExternalStorageDirectory()
                + File.separator + "test.jpg");
        try {
            f.createNewFile();
            FileOutputStream fo = new FileOutputStream(f);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (IOException e) {
            e.printStackTrace();
        }


        Uri path = Uri.fromFile(f);
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setDataAndType(path, "image/*");
        startActivity(intent);

imagenameは、描画可能なフォルダー内の画像の名前であることに注意してください

マニフェストファイルに SD カードへのアクセス許可を追加することを忘れないでください。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
于 2013-10-20T08:47:19.410 に答える
1

私はあなたがそれを行うことができるとは思わない. このドローアブルはアプリケーション専用であり、他のアプリは使用できません。独自のドローアブルを作成するImageViewerか、これらのドローアブルを SD カードにコピーしてUri、起動時に設定する必要がありIntentます。

于 2013-10-20T05:43:15.153 に答える