0

Beim Versuch, eine Compound-Drawable (Drawable Links) eines EditText festlegen, habe ich ein Problem mit Vector Drawables auf Android 4.3. Ich habe meine ic_mobile.xml (svg) in eine Statusliste verpackt.Xamarin Android-Support-Bibliothek 23.4.0.1 (Vector Drawables)

Dies funktioniert auf Android 5.0 +. Es hat früher an 4.3 gearbeitet. Aber es hat in letzter Zeit aufgehört zu arbeiten. Ich weiß, dass Android deaktiviert Vector Drawables und Sie müssen manuell wieder aktivieren

AppCompatDelegate.CompatVectorFromResourcesEnabled = true; 

Aber ich sehe noch diesen Fehler

Invalid drawable tag Vector. 

bin ich etwas fehlt?

Antwort

1

Hier ist eine nicht-Xamarin Antwort, ich hoffe, es wird Ihnen helfen. Wenn Sie den Zeichenbereich erstellen, erstellen Sie ihn als VectorDrawable. Um ältere Plattformen (4.3) zu unterstützen, können Sie jetzt VectorDrawableCompat.create(...) verwenden. Versuchen Sie nicht, ein einfaches Zeichenprogramm zu erstellen, da das Tag <vector>, wie im Fehler angegeben, nicht auf allen SDKs unterstützt wird. Leider weiß ich nicht, was sind die entsprechenden Klassen in Xamarin, aber es sollte ziemlich einfach sein, es von hier zu holen.

+0

danke! Das ist, was ich getan habe. aber das Zelt ist aus ... ich benutze ein schwarzes Vektorbild. Wenn ich es durch das Xml tönte, wird die Tönungsfarbe korrekt angewendet, aber wenn ich es durch Code töne, wird es über die schwarze Farbe hinzugefügt. Irgendwelche Hinweise? wahrscheinlich etwas mit dem Tint-Modus .. – AhmedW

+0

Keine Hinweise, da ich nicht weiß, wie du es tönst :-) Teile Code mit? –

0

arbeitete ich, um dieses Problem, indem sie alles in Code tun

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

Wo ic_mobile ist ein Vektor ziehbar (.xml)

Sie können es als eine Verbindung ziehbar wie diese

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

verwenden

Getestet und funktioniert unter Android 4.3 bis 6.0. Ich denke, das ist ein Xamarin-spezifisches Problem.

+0

Das Upgrade der Xamarin Support-Bibliotheken auf 25.1.1 behebt das Problem für mich. –

+0

@LukePothier froh, dass Sie es sortiert haben! Ich werde upgraden und testen! Prost – AhmedW