【问题标题】:android : save svg file from web and save on a fileandroid:从网络上保存 svg 文件并保存在文件中
【发布时间】:2015-02-01 17:37:13
【问题描述】:

我想将一个 svg 文件从 web 保存到一个文件中,然后从文件中显示它。我使用此代码保存 png 文件:

OutputStream fos = null;
File file = new File(getApplicationContext().getCacheDir(),FilenameUtils.getBaseName(url.toString())+FilenameUtils.getExtension(url.toString()));
Bitmap bm = ((BitmapDrawable) drawable).getBitmap();
fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
bm.compress(Bitmap.CompressFormat.PNG, 50, bos);
bos.flush();
bos.close();

我应该为 svg 文件做什么?

【问题讨论】:

  • 您将可绘制的位图保存到 .png 文件。这与从网络下载文件有什么关系?
  • @greenapps 我从网上获取文件并将其保存在可绘制对象上,现在我想将其保存在文件中
  • 您是从网上下载 .svg 文件并将其放入可绘制对象中吗?之后您想将其保存为 .svg 文件吗?
  • @greenapps 我将其保存在可绘制对象上,然后在图像视图中显示code.google.com/p/svg-android 我想保存文件以备下次从文件中显示它
  • 什么是“它”?请更准确。并回答我的问题。

标签: android file svg bitmap


【解决方案1】:

理论上,您应该能够执行以下操作:

PictureDrawable pd = (PictureDrawable) imageView.getPicture();
Picture picture = pd.getPicture();
picture.writeToStream(os);

但是你不应该这样做。 writeToStream() 已被弃用(createFromStream() 也是如此)。我想原因是图片的格式将来可能会改变,任何保存的图片可能不再加载。如果您只是在应用程序运行时将其用于临时缓存,那么 可能 没问题。

但正如@greenapps 所说,缓存原始 SVG 会更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2018-12-27
    • 1970-01-01
    相关资源
    最近更新 更多