オリジナルフォントを設定する方法で、assetsの未圧縮ファイル上限(UNCOMPRESS_DATA_MAX )について触れましたが、回避策としては
- Zipファイルで圧縮してassetsフォルダに配置し、初回起動時に解凍する
- 対象ファイルをサーバに配置し、初回起動時にダウンロードする
の2つの方法があります。
今回は、回避策1のZipファイルをassetsフォルダに置く際のサンプルコードです。
ただし、Zipファイルに1ファイルのみが圧縮されているという前提のコードになっています。
複数ファイルを圧縮している場合は、ZipInputStream.getNextEntryがnullになるまでループしてあげればOKです。
2 | AssetManager am = context.getResources().getAssets(); |
3 | InputStream is = am.open( "sample.zip" , AssetManager.ACCESS_STREAMING); |
4 | ZipInputStream zis = new ZipInputStream(is); |
5 | ZipEntry ze = zis.getNextEntry(); |
8 | String path = context.getFilesDir().toString() + "/" + ze.getName(); |
9 | FileOutputStream fos = new FileOutputStream(path, false ); |
10 | byte [] buf = new byte [ 1024 ]; |
13 | while ((size = zis.read(buf, 0 , buf.length)) > - 1 ) { |
14 | fos.write(buf, 0 , size); |
20 | } catch (Exception e) { |
0 件のコメント:
コメントを投稿