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

为此,您必须将可绘制文件夹中的图像复制到 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 回答
0

您可以通过以下代码访问您的图像:

R.drawable.image

例如,您可以在“onCreate”方法中使用此代码:

ImageView img = new ImageView(this);
img.setImageDrawable(R.drawable.image);
于 2013-10-20T07:50:27.647 回答