2

Android アプリケーションの解凍プロセス中に決定的なプログレスバーを使用するにはどうすればよいですか?

プログレスバーを更新するためにファイルする必要があることはわかっていますが、この情報を取得する方法がわかりません。

ありがとうございました!

PS私はこの投稿にあるコードを解凍するために使用します: https://stackoverflow.com/a/7697493/1364296

4

2 に答える 2

3

Androidアプリケーションで解凍プロセス中に確定プログレスバーを使用するにはどうすればよいですか?

ZipFileエントリの数を見つけるために使用します。でそれを使用して、進行状況の上限を設定setMax()します。ProgressBar次に、各ファイルを処理するときに、進行状況を1ずつ増やします。

于 2012-04-29T15:35:29.257 に答える
1

郵便番号については、これを使用します。

public static void zip(String[] files, String zipFile) throws IOException {
    BufferedInputStream origin = null;
    ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
    try { 
        byte data[] = new byte[BUFFER_SIZE];

        for (int i = 0; i < files.length; i++) {
            FileInputStream fi = new FileInputStream(files[i]);    
            origin = new BufferedInputStream(fi, BUFFER_SIZE);
            try {
                ZipEntry entry = new ZipEntry(files[i].substring(files[i].lastIndexOf("/") + 1));
                out.putNextEntry(entry);
                int count;
                while ((count = origin.read(data, 0, BUFFER_SIZE)) != -1) {
                    out.write(data, 0, count);
                }
            }
            finally {
                origin.close();
            }
        }
    }
    finally {
        out.close();
    }
}

はるかに高速になるため、解凍時に圧縮するときにバッファを使用してみてください

于 2012-08-15T00:39:51.223 に答える