我正在尝试在我的 Android 应用程序中使用 VectorDrawables。
我想从文件系统加载一个 xml 文件并获取一个 Instance 以android.graphics.Drawable
将其显示在ImageView
. 如果我将 xml 文件添加到 Resources 目录,它就可以工作。但是当我尝试从文件系统加载它时,我总是得到一个 NullPointer。
我目前正在尝试通过
Drawable.createFromPath(*Path to File*)
或加载文件VectorDrawable.createFromPath(*Path to File*)
,但我不断收到 NullPointer。该文件存在并且是一个有效的 xml 文件(见下文)。
在 adb 日志中,我总是得到:
SkImageDecoder::Factory returned null
当我使用 mContext.getFilesDir()
路径看起来像
/data/data/*packagename*/files/*filename*.xml
我还尝试了一些公共文件夹,例如“下载”。当我使用 File.io Api 检查文件时exists()
,canRead()
canWrite()
更新这是从 android Dev Pages 获取的 XML 代码
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600" >
<group
android:name="rotationGroup"
android:pivotX="300.0"
android:pivotY="300.0"
android:rotation="45.0" >
<path
android:name="v"
android:fillColor="#000000"
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>