【问题标题】:How to copy the sample images from the drawable folder to the sdcard folder, programmaticaly?如何以编程方式将示例图像从可绘制文件夹复制到 sdcard 文件夹?
【发布时间】:2012-09-20 02:20:54
【问题描述】:

我的可绘制文件夹中有图片/图像,我想以相同的质量和细节将它们全部复制到我的 sdcard 文件夹中?例如,如果我有这个。

Integer[] mThumbIds = {
        R.drawable.pic_1, R.drawable.pic_2,
        R.drawable.pic_3, R.drawable.pic_4,
        R.drawable.pic_5, R.drawable.pic_6,
        R.drawable.pic_7
};

然后我的应用会在 sdcard 中创建一个自己的目录,如下所示:

String newFolder = "/myFolder2";
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File myNewFolder = new File(extStorageDirectory + newFolder);
myNewFolder.mkdir();

我怎样才能以相同的质量和细节将所有这些drawable中的图片传输到sdcard中创建的文件夹中?

【问题讨论】:

  • 请看这个帖子stackoverflow.com/questions/8664440/…它解释了如何将图片从一个文件夹复制到另一个文件夹
  • 谢谢看看。
  • 您是否考虑过使用断言而不是资源?似乎复制会更容易(获取流,文件描述符等)。
  • @MarcinS。这个例子对我来说不是很清楚,你能把它作为答案吗?
  • @sandrstar,嗯。你想告诉我什么?看不懂。

标签: android drawable sd-card


【解决方案1】:

可通过BitmapFactory访问drawable文件夹中的这些图像,您可以将位图保存为PNG或JPG。

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    File sd = Environment.getExternalStorageDirectory();
    String fileName = "test.png";
    File dest = new File(sd, fileName);
    try {
        FileOutputStream out;
        out = new FileOutputStream(dest);
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
        out.flush();
        out.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

对于其他类型的图片,我认为将它们放入 assets 文件夹是更好的方法。

最好的问候, 王正宏

【讨论】:

  • 这是一个准确的答案;但是,强烈建议不要将 drawable 文件夹用于除可绘制对象之外的任何内容。如上所述,assets 文件夹是专门为 OP 打算做的。
  • 好的,谢谢你的信息,好的资产文件夹。如何将图像从那里传输到 SD 卡?
  • 这里有一个示例。 stackoverflow.com/questions/4447477/…
猜你喜欢
  • 2011-06-23
  • 2015-08-28
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
相关资源
最近更新 更多