2011-12-29 55 views
5

我在過去的幾個月中一直在研究android,現在我的問題是讀取放置在SD卡上的.zip文件。我已經成功完成了在SD卡上下載.zip文件的編碼。如何直接從.zip文件讀取文件,而無需在android中提取它

我有img.zip文件下載到SD卡上。這img.zip包含5個圖像文件。現在,而不是解壓縮img.zip我可以直接閱讀它的內容...?如果是的話,請幫忙。我在互聯網上看到了一些例子,但他們都說要解壓縮然後使用,我想避免這一部分,因爲我只是想設置圖像的圖像。

ImageView imv = new ImageView(this); 
imv.setImageURI(Uri.parse("//sdcard/1.png")); 

這就像下載一個圖像和設定IMV其實際工作的源泉。現在我想要的是如下所示。

imv.setImageURI(Uri.parse("//sdcard/img.zip/1.png")); 

我試過這個,但在我的佈局中我看不到圖像。

能不能做到?plz幫助...

我把它通過下面的代碼工作....

try { 
       Bitmap mBackground=null; 
        FileInputStream fis = new FileInputStream("//sdcard/tp.zip"); 
        ZipInputStream zis = new ZipInputStream(fis); 
        ZipEntry ze = null; 
        while ((ze = zis.getNextEntry()) != null) { 
         if (ze.getName().equals("1.png")) { 
          Toast.makeText(con, "Found", 2).show(); 
          mBackground = BitmapFactory.decodeStream(zis); 
          imv.setImageBitmap(mBackground); 
          break; 
         } 
        } 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

回答

2

嘗試

imv.setImageURI(Uri.parse("//sdcard/img.zip!/1.png")); 
+0

@ MahdeTo-謝謝對於答覆,但它不起作用佈局沒有任何圖像打開。究竟是什麼!符號的意思.. – AMUL 2011-12-29 05:53:21

+0

我很抱歉,您需要指定jar的協議:file:開頭。 – MahdeTo 2011-12-29 06:41:34

+0

!意味着從這個zip或jar文件中訪問此路徑 – MahdeTo 2011-12-29 06:41:52