簡體   English   中英

如何將SD卡中的SVG文件加載到ImageView中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM