2

アプリに6つの大きな画像が必要です。そして、PNGが提供する品質とアルファチャンネルは必要ありません。プログラムの最初の起動時に、JPEGファイルをrawリソースに埋め込み、SDカードに展開する方法はありますか?APKで3〜4MB節約できます。ありがとう!

4

3 に答える 3

2

それは非常に簡単です。ファイルを res/raw filder に入れて、次を使用します。

InputStream is = getResources().openRawResource(R.raw.image);
BitmapFactory.decodeStream(is);

ストリームを開くだけで、データに対して必要なことを何でも行うことができます。

于 2013-03-19T11:00:32.213 に答える
0

JPEG 画像をリソース フォルダーに配置したり、assets不要な場合はフォルダーに配置したりすることを妨げるものは何もありませんR.drawable.MY_IMAGE

ただし、イメージは引き続き APK に含まれ、SD カードにコピーした後でもアプリケーション パッケージから削除することはできません。

唯一の方法は、アプリケーションの初回起動時に Web サーバーから画像を個別にダウンロードすることです。

アプリケーションに大きなファイルが必要な場合は、Google Play ストアもいくつかの機能を提供しますが、それは少しやり過ぎのようです。

于 2013-03-19T11:03:01.650 に答える
0

私はあなたの質問を理解していないと思います: 最初の実行時に画像ファイルをハイブオフしたいようです...

とにかく、リソースではなくアセットフォルダーにファイルを配置することをお勧めします。ファイル システムとしてアセットにアクセスし、任意の (許可された) 場所にコピーできます。

こちらをご覧ください: /res ディレクトリと /assets ディレクトリの違い

そしてここ(アセットを見てください): http://developer.android.com/tools/projects/index.html

編集:

私の答えは、リソースの代わりにアセットを使用することを提案していますが、実行時に apk を変更することはできません

Androidで実行時にアセットフォルダからファイルを削除するにはどうすればよいですか?

于 2013-03-19T11:12:56.990 に答える