1

10 個の画像があり、このすべての画像を A​​ndroid アプリケーションのメモリに保存したいと考えています。したがって、このアプリをインストールするときはいつでも、彼はすでにこのすべての画像を持っています。

私は何度もハードコーディングしましたが、良い反応が得られません。

方法はありますか?だからやります。

私を助けてください

4

2 に答える 2

1

すべての画像をAPKのアセットフォルダに保存します。インストールしたら、内部メモリをスキャンして、目的のイメージがそこにあるかどうかを確認します。そうでない場合は、そこにコピーします。このようにして、ユーザーがアプリケーションのデータをクリアした場合でも、それらをコピーして戻すことができます。もう1つの良い点は、ユーザーがそれについて何も知らないので、優れたユーザーエクスペリエンスです。APKサイズが大きくなるだけなので、それに応じて管理してください。

以下のコードを試してください

InputStream inputStream = getAssets().open("yourfile.jpg");
            OutputStream out = new FileOutputStream(new File("/sdcard/yourfile.jpg"));
            int read = 0;
            byte[] bytes = new byte[1024];
            while ((read = inputStream.read(bytes)) != -1) {
                out.write(bytes, 0, read);
            }
            inputStream.close();
            out.flush();
            out.close();
于 2012-10-30T10:51:30.023 に答える
0

ファイルをアセットまたは res フォルダーに保持できます。ここでは、ファイルを res/drawable/ に保持し、必要に応じて SD カードにコピーします。以下のコードでは、最初にファイルが存在しないかどうかを確認し、ドローアブルからビットマップを作成して、ファイルを SD カードに書き出します。

  File file = new File(pathExt+"/Pictures/", "s1.png");
                if(isSDCARDMounted()){
                if (!file.exists()) {
                    bmp = BitmapFactory.decodeResource(getResources(),
                            R.drawable.s1);

                    try {

                        FileOutputStream outStream = new FileOutputStream(file);
                        bmp.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
                        outStream.flush();
                        outStream.close();
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                        }
}

isSDCARDMounted : カードが実装されているかどうかを確認する関数

pathExt : 外部ストレージのディレクトリパスの変数

外部ストレージへの書き込み権限が設定されていることを確認してください

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-10-30T11:28:01.397 に答える