Xamarin Android支持库23.4.0.1(Vector Drawables)

时间:2016-07-22 11:00:25

标签: android xamarin android-support-library android-vectordrawable

在尝试设置EditText的复合可绘制(可绘制左侧)时,我在Android 4.3上使用矢量绘图时出现问题。我将ic_mobile.xml(svg)包装在状态列表中。

这适用于Android 5.0 +。它曾经用于4.3。但它最近停止了工作。我知道Android禁用了Vector drawables,你必须手动重新启用它们

AppCompatDelegate.CompatVectorFromResourcesEnabled = true;

但我仍然看到此错误

Invalid drawable tag Vector.

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

这是一个非Xamarin的答案,我希望它会对你有所帮助。创建drawable时,将其创建为VectorDrawable。现在,为了支持旧平台(4.3),您可以使用VectorDrawableCompat.create(...)。不要尝试创建普通的drawable,因为,如错误中所述,并非所有SDK都支持标记<vector>。 不幸的是,我不知道Xamarin中的等价类是什么,但从这里提取它应该相当简单。

答案 1 :(得分:0)

我通过在代码中执行所有操作解决了这个问题

private VectorDrawableCompat _phoneVectorDrawable;
_phoneVectorDrawable = VectorDrawableUtil.GetTintedDrawable(Resources, Resource.Drawable.ic_mobile, _tintColor_darkColor, Theme); 

其中ic_mobile是vector drawable(.xml)

您可以将它用作像这样的复合可绘制

 _EditTextMobileNumber.SetCompoundDrawablesWithIntrinsicBounds(_phoneVectorDrawable, null, null, null);

测试并使用Android 4.3到6.0。我认为这是Xamarin的具体问题。