2016-10-30 3 views
1

Ich arbeite an einer Anwendung, die auf Android-Geräten bis hinunter zu Android Gingerbread (2.3) ausgeführt werden muss und scheinen einige Probleme mit einem SVG-Bild aufgetreten.Verwenden von Vektorbildern mit Android: DrawableTop vor API-Ebene 21

Ich verstehe, kann die Support-Bibliothek mir Vektor-Bilder verwenden, indem Sie diese Zeile in meiner App-Ebene fällt build.gradle:

vectorDrawables.useSupportLibrary = true 

und ich kann dann eine Vielzahl von Support-Bibliothek Klassen verwenden oder die android:srcCompat ein anzuzeigen SVG in einem ImageView

Das Problem, das Sie hier sind, ist, dass ich kein ImageView verwende, um mein SVG anzuzeigen. Ich verwende ein TextView mit dem android:drawableTop Attribute meines SVG wie in angezeigt werden:

<TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/text_no_notes" 
     android:textAlignment="center" 
     android:drawableTop="@drawable/ic_notepad" 
     android:id="@+id/textView" 
     android:textAppearance="@style/TextAppearance.AppCompat.Medium.Inverse" /> 

Da android:drawableTop nicht die Support-Bibliothek Vektor-Bilder verwenden, die App abstürzt zur Laufzeit auf pre „L“ Geräten. Gibt es eine Problemumgehung, die ich verwenden kann, um android:drawableTop arbeiten zu lassen, oder bin ich gerade dabei, die TextView aufzuteilen und android:srcCompat zu verwenden?

Antwort

2

Es gibt keine Möglichkeit, es mit dem System TextView zu verwenden. (Relevanter Quellcode: 5.1.1/4.4.4)

Sie könnten eine benutzerdefinierte View-Klasse verwenden, aber zu diesem Zeitpunkt ist es besser, ein LinearLayout mit einem ImageView und einem TextView zu verwenden.

+0

Ugh, dachte ich, dass dies die Antwort sein würde. Vielen Dank! –

Verwandte Themen