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
.
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
Marcin Orlowski
Stellen Sie zunächst sicher, dass Sie damit zu tun haben AppCompatImageView
nicht 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)
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.