オリジナルフォントを設定する方法で、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 = newZipInputStream(is); | 
                   | 5 |     ZipEntry        ze  =         zis.getNextEntry(); | 
                       | 8 |         String path = context.getFilesDir().toString() + "/"+ ze.getName(); | 
                   | 9 |         FileOutputStream fos = newFileOutputStream(path, false); | 
                   | 10 |         byte[] buf = newbyte[1024]; | 
                       | 13 |         while((size = zis.read(buf, 0, buf.length)) > -1) { | 
                   | 14 |             fos.write(buf, 0, size); | 
                             | 20 | } catch(Exception e) { | 
      
0 件のコメント:
コメントを投稿