web-dev-qa-db-de.com

Wie kann man die ImageButton-Eigenschaft der App programmgesteuert einstellen? SrcCompat = "@ drawable/pic"?

So legen Sie die ImageButton-Eigenschaft von fest 

app:srcCompat="@drawable/pic"

programmatisch?

So etwas wie myImageButton.setBackgroundResource(R.drawable.eng2);, aber die Eigenschaft von app:srcCompat.

42
Isaac

Sie müssen die setImageResource () -Methode verwenden.

imageButton.setImageResource(R.drawable.eng2);

111
Prerak Sola

Stellen Sie zunächst sicher, dass Sie mit AppCompatImageView und nicht mit "normal" ImageView zu tun haben:

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

dann kannst du verwenden

iv.setImageResource(R.drawable.pic);

Siehe andere öffentliche Methoden in docs .

18
Marcin Orlowski

Die Verwendung von setImageResource() sollte seine Ressource abwärtskompatibel abrufen, ohne dass weiterer Aufwand erforderlich ist.

Wenn Sie jedoch setImageDrawable() verwenden, hilft ImageView/ImageButton nicht bei Rückwärtskompatibilitäten, und es liegt an Ihnen, ein Rückwärtskompatibilitätszertifikat bereitzustellen, was z. B. wichtig ist. wenn Sie VectorDrawables verwenden. Folgendes wird geladen und so ein Zeichen gesetzt:

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