Programmgesteuertes Festlegen von VectorDrawable als Bild für ImageView

9

Ich möchte vectorDrawables in Android Studio auf ImageView festlegen.

Ich kann png und jpg einfach zeichnen, aber wenn ich VectorDrawable einstellen will, funktioniert es nicht bei imageview.

%Vor%

ic_home ist VectorDrawable und dieser Code funktioniert nicht.

    
Hamid.Waezi 12.12.2016, 09:48
quelle

6 Antworten

13

Laut offiziellen Android Entwickler-Blog gibt es keine Änderungen für setImageResource () -Methode zur Laufzeit für vectorDrawables.

  

Wenn Sie Zeichen zur Laufzeit ändern, können Sie den Befehl verwenden   gleich    setImageResource ()   Methode wie zuvor - keine Änderungen dort. Verwenden von AppCompat und app: srcCompat   ist die absolut narrensicherste Methode, um Vektor - Drawables in Ihren Browser zu integrieren   App.

Weitere Details finden Sie in diesem schönen Artikel AppCompat - Age der Vektoren von Google Developer.

    
Priyank Patel 12.12.2016, 10:08
quelle
20

Wenn Sie vektorabbildbare Zeichen (weniger ODER größer als API 21) verwenden möchten, tun Sie Folgendes:

Legen Sie das Bild programmgesteuert fest (z. B. in Ihrer Aktivität):

%Vor%

oder per XML:

%Vor%

In der build.gradle Ihrer App müssen Sie Folgendes einschließen:

%Vor%

Und für die Vektorunterstützung für weniger als API 21 fügen Sie Folgendes zu onCreate hinzu:

%Vor%     
Pramod Baggolli 20.04.2017 10:25
quelle
6

Wenn Sie mit der Abwärtskompatibilität zu tun haben, sollten Sie stattdessen AppCompatImageView anstatt der Bildansicht verwenden. Gehen Sie den folgenden Code durch.

%Vor%

Java

%Vor%

Und es wird der Perspektive von app:srcCompat dienen.

    
sanjeev kumar 12.12.2016 10:22
quelle
1

Ich hatte einen Vektor in der Recycler-Ansicht, den ich img.setImageResource (R.drawable.ic_home) verwendet habe, was nicht richtig funktioniert hat, wie ein anderes Bild in einem Recycler-View-Objekt erzeugt wurde strong> img.setImageDrawable (activity.getResources (). getDrawable (R.drawable.ic_home)) das hat funktioniert.

    
JSONParser 20.12.2017 02:17
quelle
0

Verwenden Sie android.support.v7.widget.AppCompatImageButton , android.support.v7.widget.AppCompatImageView , android.support.v7.widget.AppCompatTextView anstelle von ImageButton , ImageView usw. Wenn ein Vektortyp verwendet wird.

Hauptsächlich für benutzerdefinierte Ansichten.

    
masoomyf 25.12.2017 10:34
quelle
0

Für diejenigen, die einen Vektor programmatisch für andere Zwecke laden möchten, z. B. ein drawableLeft oder ein anderes Zeichen setzen, können Sie verwenden:

%Vor%

wobei der Kontext eine AppCompatActivity ist.

    
Jawnnypoo 13.03.2018 19:57
quelle