アプリに6つの大きな画像が必要です。そして、PNGが提供する品質とアルファチャンネルは必要ありません。プログラムの最初の起動時に、JPEGファイルをrawリソースに埋め込み、SDカードに展開する方法はありますか?APKで3〜4MB節約できます。ありがとう!
3 に答える
それは非常に簡単です。ファイルを res/raw filder に入れて、次を使用します。
InputStream is = getResources().openRawResource(R.raw.image);
BitmapFactory.decodeStream(is);
ストリームを開くだけで、データに対して必要なことを何でも行うことができます。
JPEG 画像をリソース フォルダーに配置したり、assets
不要な場合はフォルダーに配置したりすることを妨げるものは何もありませんR.drawable.MY_IMAGE
。
ただし、イメージは引き続き APK に含まれ、SD カードにコピーした後でもアプリケーション パッケージから削除することはできません。
唯一の方法は、アプリケーションの初回起動時に Web サーバーから画像を個別にダウンロードすることです。
アプリケーションに大きなファイルが必要な場合は、Google Play ストアもいくつかの機能を提供しますが、それは少しやり過ぎのようです。
私はあなたの質問を理解していないと思います: 最初の実行時に画像ファイルをハイブオフしたいようです...
とにかく、リソースではなくアセットフォルダーにファイルを配置することをお勧めします。ファイル システムとしてアセットにアクセスし、任意の (許可された) 場所にコピーできます。
こちらをご覧ください: /res ディレクトリと /assets ディレクトリの違い
そしてここ(アセットを見てください): http://developer.android.com/tools/projects/index.html
編集:
私の答えは、リソースの代わりにアセットを使用することを提案していますが、実行時に apk を変更することはできません。