java - 使用外部程序从 Assets 中打开图像

标签 java android

我编写了内容提供程序以使用外部应用程序(Android 的标准图像查看器)在我的应用程序包中打开一个 png 文件。图像存储在 Assets 文件夹中。

我不明白哪里出了问题,但它对我不起作用。

打开ContentProvider的文件:

   @Override
   public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
       URI file_uri = URI.create("file:///data/data/com.package/assets/image.png"); 
       File file = new File(file_uri.getPath());
       ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
       return parcel;
   }

开始 Activity :

Uri uri = Uri.parse("file:///android_asset/image.png"); 
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
startActivity(intent);

这种方法是否正确,我的错误在哪里?还是我完全错了?

最佳答案

新 Activity 无权访问您的内部 Assets 目录。您可以将图像放在 SD 卡上,也可以使用您自己的应用程序中的 ImageView。

关于java - 使用外部程序从 Assets 中打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315016/

相关文章:

android - 在我的 Android Activity 中获取对 View 的引用

android - 如何使用分页库在回收站 View 中添加日期分隔符?

java - Java中getAbsolutePath的打印

java - Runnable 中的 AsyncHttpClient

java - 从android资源中获取静态内容的更好方法?

java - 为什么我的代码首先打印一个空行?

android - Firebase 多位置规则 - 相同的值

java - onListItemClick 上的 NullPointerException

java - 无法根据姓名更新联系人

java - 无法将空日期值插入 mysql