2011-12-29 16 views
5

私は過去数ヶ月間アンドロイドで作業していましたが、現在問題はsdcardに置かれた.zipファイルを読むことです。私は正常にsdcardで.zipファイルをダウンロードするためのコーディングを行った。アンドロイドでファイルを抽出せずに.zipファイルからファイルを直接読み取る方法

私はimg.zipファイルをsdcardにダウンロードしました。このimg.zipには5つのイメージファイルが含まれています。今すぐimg.zipを解凍する代わりに、私はその内容を直接読むことができますか????はいの場合はplzヘルプ。私はインターネット上でいくつかの例を見たが、彼らはすべて解凍して使用すると言う、私は単に画像ビューの画像を設定したいので、私はその部分を避けたい。

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

がMahdeTo-のおかげで@

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

をお試しください返信のためにそれは動作しませんレイアウトは画像なしでオープンになります。実際にそれは何ですか?記号意味.. ?? – AMUL

+0

申し訳ありませんが、最初にjar:file:にプロトコルを指定する必要があります。 – MahdeTo

+0

!このジップまたはjarファイルの内部からこのパスにアクセスすることを意味します。 – MahdeTo

関連する問題