Wie setze ich die ImageButton-Eigenschaft von app:srcCompat=”@drawable/pic” programmgesteuert?

Lesezeit: 2 Minuten

Benutzer-Avatar
Isaac Darlong

Wie stellt man die ein ImageButton Eigentum von

app:srcCompat="@drawable/pic"

programmatisch?

Etwas wie myImageButton.setBackgroundResource(R.drawable.eng2); aber das Eigentum von app:srcCompat.

Sie müssen verwenden setImageResource() Methode.

imageButton.setImageResource(R.drawable.eng2);

  • Gleiches gilt für Kotlin

    – Ben

    14. März 2021 um 14:32 Uhr

  • Bedeutet das, dass wir keine srcCompat-Änderungen für XML verwenden?

    – Gumuruh

    30. Dezember 2021 um 10:52 Uhr

Benutzer-Avatar
Marcin Orlowski

Stellen Sie zunächst sicher, dass Sie damit zu tun haben AppCompatImageViewnicht regulär ImageView:

AppCompatImageView iv = (AppCompatImageView)findViewById(....);

und dann kannst du machen:

iv.setImageResource(R.drawable.pic);

Siehe andere öffentliche Methoden in Dokumenten.

  • Ich verwende ‘ImageButton’ mit ‘app:srcCompat=”@drawable/pic”‘, setze aber auf ‘setImageResource(R.drawable.pic);’ funktioniert gut. Vielen Dank

    – Isaac Darlong

    5. Juli 2016 um 21:25 Uhr

  • Build-Tools ersetzen wahrscheinlich Klassen “in fly”

    – snachmsm

    5. Juli 2016 um 21:26 Uhr

  • Hey Marcin, weißt du, warum wir das Bild programmgesteuert ändern müssen, anstatt den Pfad zwischen app:srcCompa=”drawable/”

    – Vitaliy Terziev

    23. November 2016 um 1:58 Uhr

  • Ich möchte zu dieser Antwort hinzufügen, ich musste verwenden AppCompatImageButton Anstatt von ImageButton.

    – Zhang

    2. Mai 2017 um 9:51 Uhr

  • @Zhang Das liegt wahrscheinlich daran, dass Sie die Aktivität, bei der die Ansicht aufgeblasen wurde, AppCompatActivity nicht erweitert haben

    – André Romano

    29. Dezember 2017 um 14:38 Uhr

Verwenden setImageResource() sollte seine Ressource ohne weiteren Aufwand abwärtskompatibel abrufen.

Wenn Sie jedoch verwenden setImageDrawable(), der ImageView/ImageButton hilft nicht bei der Abwärtskompatibilität und es liegt an Ihnen, ein abwärtskompatibles Drawable bereitzustellen, was z. B. wichtig ist. wenn Sie verwenden VectorDrawables. Das Folgende lädt und setzt ein Drawable auf diese Weise:

val drawable = AppCompatResources.getDrawable(context, resourceId)
image.setImageDrawable(drawable)

  • Für ImageButtons funktioniert es

    – Kischan Solanki

    8. Juni um 8:57

Keine der bereitgestellten Lösungen hat bei mir funktioniert. Ich habe ein ImageView verwendet. Schließlich fand ich heraus, dass mit setBackgroundResource() funktioniert bei mir.

view.setBackgroundResource(R.drawable.ic_star_black_18dp)

Benutzer-Avatar
miPlodder

Ich denke, andere Methoden sind veraltet und würden zum Zeitpunkt des Schreibens nicht funktionieren,

iv_yourImageView.setImageDrawable(getResources().getDrawable(R.drawable.your_drawable));

Das wird funktionieren.

1298110cookie-checkWie setze ich die ImageButton-Eigenschaft von app:srcCompat=”@drawable/pic” programmgesteuert?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy