Как прочитать файл непосредственно из файла .zip, не распаковывая его в Android - PullRequest
7 голосов
/ 29 декабря 2011

Я работаю на Android последние несколько месяцев, теперь проблема для меня - прочитать файл .zip, помещенный на SDCard.Я успешно выполнил кодирование для загрузки файла .zip на SD-карту.

У меня есть файл 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 help...

Я получил его с помощью следующего кода ....

 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 Ответ

2 голосов
/ 29 декабря 2011

Попробуйте

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