我想从Gridview Adapter中加载ImageView中的SVG, 我这样做:
imageView.setImageURI(Uri.parse("file:///android_asset/ico/s.svg"));
但没有工作,也没有显示任何东西
答案 0 :(得分:2)
我想从Gridview Adapter在ImageView中加载SVG,我这样做:
首先,ImageView
不直接支持SVG。
其次,您的代码似乎正在加载PNG文件,而不是SVG文件。
第三,file:///android_asset/
适用于WebView
。它在Android SDK的其他地方不起作用。
您应该考虑使用Glide作为图像加载器。它处理file:///android_asset/
并具有转码SVG文件的示例代码。此外,它还在后台线程上进行图像加载工作。
否则,您可以使用AssetManager
及其open()
方法获取资产的InputStream
。如果该资产是PNG,JPEG或WebP文件,您可以使用BitmapFactory.decodeStream()
来读取信息流,然后为Bitmap
提供可用于ImageView
的信息。您需要第三方库来处理SVG资产。并且,您需要安排在后台线程上执行此工作,否则您的UI将冻结并导致用户认为您的应用程序卡住了。