在尝试设置EditText的复合可绘制(可绘制左侧)时,我在Android 4.3上使用矢量绘图时出现问题。我将ic_mobile.xml(svg)包装在状态列表中。
这适用于Android 5.0 +。它曾经用于4.3。但它最近停止了工作。我知道Android禁用了Vector drawables,你必须手动重新启用它们
AppCompatDelegate.CompatVectorFromResourcesEnabled = true;
但我仍然看到此错误
Invalid drawable tag Vector.
我错过了什么吗?
答案 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的具体问题。