我想显示我在apk中包含的文件。我可以将缩略图放入一个小的ImageView中,当用户点击它时,我想使用图库(或用户拥有的任何图像查看应用程序)显示完整尺寸
下面是clicklistener:我想从" raw"中拉出完整的大小。文件夹和开始和活动。我失败了
private OnClickListener showImage = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setData(Uri.parse("android.resource://com.invodo.allshareplay/" + R.raw.dropbox_photo1));
intent.setType("image/jpeg");
startActivity(intent);
}
};
--- logcat ----
03-13 11:16:33.704: E/AndroidRuntime(10466): FATAL EXCEPTION: main
03-13 11:16:33.704: E/AndroidRuntime(10466): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.invodo.allshareplay/2130968576 }
03-13 11:16:33.704: E/AndroidRuntime(10466): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
我尝试了一些获取Uri路径的不同变体,包括使用文件名
intent.setData(Uri.parse("android.resource://com.invodo.allshareplay/raw/dropbox_photo1.jpg"));
在模拟器上,它告诉启动ViewImage但是然后说相机已停止,除非我拿出这一行:
intent.setType("image/jpeg");
并且注释掉它只是失败而没有找到活动。
如果我将此代码放在真实设备上,它会在手机上提取我的图像,但不会显示我想要显示的图像。如果我取消了SetType调用,它就会停止。
不管我在获得一个合适的Uri时可能做错了什么, 关于如何正确显示作为原始资源存储的jpeg图像的任何想法?
答案 0 :(得分:0)
这似乎与this question中描述的流程类似。
建议的解决方案是添加“file://”作为文件绝对路径的前缀。因此Intent应设置如下:
...
Uri hacked_uri = Uri.parse("file://" + uri.getPath());
intent.setDataAndType(hacked_uri, "image/*");
...
它对我有用......