如何在内部存储中保存SVG并检索它并将其设置为ImageView?

时间:2017-09-25 14:29:05

标签: android svg

我需要将.svg保存在Android应用程序的内部存储中并检索它并将其设置为ImageView。

我无法保存.svg文件。我正在使用这种方法 -

 File cacheDir = ctx.getCacheDir();
            f = new File(cacheDir, name + ".png");

            try {
                InputStream in = new java.net.URL(imageurl).openStream();
                mIcon = BitmapFactory.decodeStream(in);

                try {

                    FileOutputStream out = new FileOutputStream(
                            f);
                    mIcon.compress(
                            Bitmap.CompressFormat.JPEG,
                            100, out);
                    out.flush();
                    out.close();

                    return f;

                } catch (FileNotFoundException e) {

                    return null;
                } catch (IOException e) {

                    return null;
                }

            } catch (Exception e) {

                return null;
            }

1 个答案:

答案 0 :(得分:0)

为什么要将SVG解码为位图?我不确定是否有可能。

但是如果要将SVG文件保存到存储,只需将输入流复制到输出流。

简单的java解决方案:

byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
    out.write(buffer, 0, len);
}

with IOUtils

如果要显示SVG文件,请查看https://github.com/pents90/svg-android/tree/master/svgandroid