使用外部程序从资产打开图像

时间:2011-03-15 16:46:47

标签: java android

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

我无法理解问题出在哪里,但它对我不起作用。

ContentProvider的openFile:

   @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;
   }

开始活动:

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

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

1 个答案:

答案 0 :(得分:3)

新活动无法访问您的内部资产目录。您可以将图像放在SD卡上,也可以使用属于应用程序的ImageView。