[英]How to load an SVG file from SD Card into an ImageView?
我正在嘗試用Picasso加載下載到sd卡中的svg文件,但它不起作用。
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath()+"/secciones.svg");
Picasso.with(context).load(file).into(holder.ivIcon);
之前我發現了這個問題,但他從資產中加載了文件。 從SD卡將可繪制的矢量加載到imageview中
是否可以加載下載到imageView中的.svg?
您可以通過在將SVG設置為ImageView
之前將SVG轉換為drawable來實現此目的。 為此目的,有一個很好的圖書館(有點老和沒有管理) 在這里 ,但我嘗試並為我工作。 代碼如下:
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();
}
我們不能在Android應用程序中使用SVG。 (是的......我們可以使用第三方庫來處理SVG文件)
來源: Android - 使用VectorDrawable
VectorDrawable圖像只是xml文件,包含圖像的所有信息(如線條,曲線等)以及與每個圖像相關的顏色。 使用vectorDrawable的最大優點是我們只需要一個圖像用於不同的屏幕設備。這不僅減小了最終apk的大小,還簡化了項目的維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.