0

現在、アプリにたくさんの画像があり、すべて描画可能にしています。画像は、モバイル表示用に事前に圧縮/最適化されています。(しかし、これらのすべての画像をsdcardに入れ、drawableの代わりにその場所を使用します。大量の画像のため)

私の要件の 1 つは、ユーザーにオフライン アクセスを提供できることです。どうするのが一番効率がいいのか気になる

大量の画像(約40〜数千)を保存する

したがって、私の計画は、すべての画像をSDカードに保存し(フォルダーを作成して)、これらの画像のリンクをデータベーステーブルに保存することです。

したがって、アプリは最初にDBテーブルから画像パスを取得し、次にsdcardからファイルを取得して表示します。

しかし、私の問題は、アプリの開発中にこれらの画像をどこに置くべきかということです。

(すべての画像をドローアブルに入れてから、プログラムでSDカードにコピーしてから、その場所の使用を開始する必要があります!!!)

1) アプリケーションの開発時に、これらすべてのイメージを SD カードに保存する方法。? 2)アプリをデプロイするとき、これらのすべての画像はパッケージ内で利用できるはずですか?

4

2 に答える 2

1

多数の画像がある場合は、アプリの最初の起動時に、リモートの場所から画像をダウンロードして SD カードに保存し、db テーブルを構築します。それらをドローアブルに入れてからSDカードにコピーするのは意味がありません。

編集

Drawable から画像をコピーして SD カードに保存する場合は、次のようにします。

まず、ドローアブルをビットマップ オブジェクトに変換する必要があります。

Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.filenameindrawable);

FileOutputStream を使用して SD カードに保存します。

try {
       FileOutputStream out = new FileOutputStream("file on sd card");
       bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
       e.printStackTrace();
}

ただし、これは推奨される方法ではありません。

于 2013-01-21T11:48:44.233 に答える
0

アプリケーション イメージを SD カードに保存することはお勧めできません。アプリのインストール後にSDカードを持っていない、またはSDカードを取り外した場合、それらの画像はuorアプリで利用できないためです。誰でもSDカードに保存された画像にアクセスできます。そのため、リモートの場所から画像をダウンロードしてSDカード/内部ファイルシステムに保存し、dbテーブルを更新することにより、アプリの最初の起動時にアプリの内部ファイルシステムにこれらの画像を保存することをお勧めします。

于 2013-01-21T11:59:29.513 に答える