我正在尝试使用Picasso加载下载到sd卡中的svg文件,但它不起作用。
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()+"/secciones.svg");
Picasso.with(context).load(file).into(holder.ivIcon);
之前我发现了这个问题,但他从资产中加载了该文件。 Load a vector drawable into imageview from sd card
是否可以加载下载到imageView中的.svg?
答案 0 :(得分:1)
您可以通过在将SVG设置为ImageView
之前将SVG转换为drawable来实现此目的。为此目的,有一个很好的图书馆(有点旧和未经管理)Here,但我尝试并为我工作。代码如下:
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "your_file_path/filename.svg");
try {
FileInputStream fileInputStream = new FileInputStream(yourFile);
SVG svg = SVGParser.getSVGFromInputStream(fileInputStream);
Drawable drawable = svg.createPictureDrawable();
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
imageView.setImageDrawable(drawable);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
我们不能将SVG与Android应用程序一起使用。 (是的......我们可以使用第三方库来处理SVG文件)
来源:Android — Working with VectorDrawable
VectorDrawable图像只是xml文件,其中包含图像的所有信息(如线条,曲线等)以及与每个图像相关的颜色。使用vectorDrawable的最大优点是我们只需要一个图像用于不同的屏幕设备。这不仅减少了最终apk的大小,还简化了项目的维护。