如何直接从.zip文件中读取文件而不在android中提取它

时间:2011-12-29 05:16:19

标签: android zip sd-card

过去几个月我一直在研究android,现在我的问题是读取放在SD卡上的.zip文件。我已成功完成了在SD卡上下载.zip文件的编码。

我将img.zip文件下载到sdcard上。这个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(); 
                } 

1 个答案:

答案 0 :(得分:2)

尝试

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