1

我有 10 张图像,想将所有这些图像保存在 android 应用程序内存中。因此,无论何时使用安装此应用程序,他都已经拥有了所有图像。

我已经硬编码了很多次,但没有得到很好的回应。

有什么办法吗。所以我会做到的。

请帮我

4

2 回答 2

1

将所有图像存储在 APK 的 assets 文件夹中。安装后,扫描内部存储器以查看是否存在所需的图像。如果没有,请将它们复制到那里。这样,即使用户清除了您应用程序的数据,您也可以将它们复制回来。另一个好处是用户也不会对此一无所知,因此它是一个很好的用户体验。唯一的问题是您的 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/ 中,并在需要时将它们复制到 sdcard 上。在下面的代码中,我们首先检查文件是否不存在,然后从可绘制对象创建位图并将文件写入 sdcard。

  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 回答