2011-03-15 71 views
1

我已经编写了内容提供程序,可以在我的应用程序包中使用外部应用程序(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); 

是这种做法正确,哪里是我错了吗?还是我完全错了?

回答

3

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

相关问题