0

我有一些图像应该显示在应用程序中,Q.是如何将我放在代码中assets文件夹中的图像复制到用户SC卡下的文件夹中,以便在手机上安装应用程序

4

2 回答 2

2

试试这个,

private void copyAssets() {
    AssetManager assetManager = getAssets();
    String[] files = null;
    try {
        files = assetManager.list("");
    } catch (IOException e) {
        Log.e("tag", e.getMessage());
    }
    for(String filename : files) {
        InputStream in = null;
        OutputStream out = null;
        try {
          in = assetManager.open(filename);
          out = new FileOutputStream("/sdcard/" + filename);
          copyFile(in, out);
          in.close();
          in = null;
          out.flush();
          out.close();
          out = null;
        } catch(Exception e) {
            Log.e("tag", e.getMessage());
        }       
    }
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
    byte[] buffer = new byte[1024];
    int read;
    while((read = in.read(buffer)) != -1){
      out.write(buffer, 0, read);
    }
}

不要忘记在您的清单中添加此权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
于 2012-08-29T08:18:49.280 回答
0

所以我需要做一些类似的事情,除了所有文件,并且在启动时为 AOSP 包。如果有人感兴趣,这里是包的链接(参见 AssetCopyReceiver.java)。

https://github.com/Paradopolis/AssetCopier/blob/master/src/com/paradopolis/assetcopier/AssetCopyReceiver.java

这会将 sdcard 下的所有文件复制到它们各自的位置,并且它也应该与子目录一起使用。它用作启动接收器,不适用于常规应用程序,因此需要对其进行修改,但代码是相同的。它很大程度上基于我从那里开始的第一个答案,并纠正了我发现的一些问题,因为我需要扩展它。

于 2014-02-03T22:12:54.360 回答