2013-03-13 27 views
2

我想顯示一個包含在apk中的文件。我可以將縮略圖放到一個小ImageView中,當用戶點擊它時,我想使用Gallery(或用戶擁有的任何圖像查看應用程序)顯示全尺寸。使用Intent.ACTION_VIEW顯示本地資源失敗

下面是clicklistener:我想拉滿大小超出「原始」文件夾和開始和活動。我得到一個失敗

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

這似乎與this question中描述的流程類似。

建議的解決方案是添加「file://」作爲文件絕對路徑的前綴。因此該意圖應遵循設置:

...

Uri hacked_uri = Uri.parse("file://" + uri.getPath()); 
intent.setDataAndType(hacked_uri, "image/*"); 
... 

它的工作對我來說...