Xamarin.Android无法使用矢量图像

时间:2019-06-16 10:54:26

标签: xamarin svg xamarin.android android-vectordrawable

最近我遇到了一个问题,即不可能使用 Xemin.Android 中的 Native Android 项目中的矢量可绘制对象。 em> :

Severity Code Description Project File Line Suppression State Error  No resource found that matches the given name (at 'background' with value '@drawable/service_border')

有人遇到过同样的问题吗?

我也很讨厌安装 Xamarin.Android.Support.Vector.Drawable ,并在 MainActivity 中启用它>为:

AppCompatDelegate.CompatVectorFromResourcesEnabled = true;

矢量图像具有以下扩展名 drawable / service_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners
        android:radius="20dp"/>
    <padding
        android:left="10dp"
        android:right="10dp"
        android:top="10dp"
        android:bottom="10dp"/>
    <stroke
        android:width="1dp"
        android:color="#CCCCCC"/>
</shape>

2 个答案:

答案 0 :(得分:1)

1-您首先需要将svg文件转换为VectorDrawable格式,此工具(svg2android)可帮助您完成此操作。

2-将VectorDrawable xml文件(例如mySVG.xml)包含到Resources / drawable文件夹中。

3-现在,您可以直接使用ImageView显示此VectorDrawable:

var resId = Resources.GetIdentifier("mySVG", "drawable", "YOUR_PACKAGE_NAME");
myImageView.SetImageResource(resId);

我希望有帮助。

答案 1 :(得分:-1)

您的 xml 文件不是矢量可绘制文件。你需要转换它。转到https://svg2vector.com/

转换任何图像并查看更改。

看看,如果您的矢量 xml 文件看起来相同。显然它不完全相同。所以你需要转换它