【问题标题】:How to transfer images from drawable to a folder in sdcard?如何将图像从drawable传输到sdcard中的文件夹?
【发布时间】:2012-09-19 16:49:45
【问题描述】:

有没有办法将图像从 res/drawable 文件夹传输到 sdcard 中的文件夹?并且还能得到图片的质量和细节吗?

【问题讨论】:

  • 你为什么要这样做?
  • 因为我想要在我的应用程序启动时使用它。它只会在 sdcard 中创建一个“文件夹”,然后将图片从 drawable 加载到该“文件夹”。
  • 为什么不从drawable本身加载它?为什么要重复数据并消耗额外的空间?
  • 因为这个想法是从 sdcard 加载图像,而不是在 drawable 中。我想这样做是因为如果有人测试了该应用程序,他/她将不会在 sdcard 中手动创建文件夹。应用程序经过测试后没有错误。
  • 这很好,但是为什么你需要从 SD 卡中加载它,而你的应用程序中已经有了它呢?您不必要地重复数据。如果您需要 SD 卡上的图像,则不应将其与您的应用程序捆绑在一起。相反,您应该让用户在第一次运行时下载它,因为这样可以节省用户空间。

标签: android image drawable


【解决方案1】:

您必须使用BitmapFactory.decodeResource(),通过将您的项目的资源ID传递给它,首先生成Bitmap

Bitmap myBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.mybitmap);

然后,您可以使用answer in this thread 将其保存到存储卡中。

类似这样的:

try {
    FileOutputStream out = new FileOutputStream(filename);
    myBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
    e.printStackTrace();
}

注意:@RaghavSood 在他的 cmets 中是正确的;你真的没有理由需要这样做。您可以只在运行时加载可绘制资源,而不是消耗内存卡上的空间。

【讨论】:

  • 试过这个,但有没有办法传输许多图像,而不仅仅是一个。
  • 让它成为一个方法,然后用不同的资源 ID 多次调用它......?没有办法将一堆可绘制对象自动转换为Bitmaps,不。
猜你喜欢
  • 2015-05-16
  • 2020-12-25
  • 1970-01-01
  • 2013-03-20
  • 2014-06-12
  • 1970-01-01
  • 2015-11-15
  • 2012-07-06
  • 1970-01-01
相关资源
最近更新 更多