Imagebutton programmgesteuert ändern?

Lesezeit: 2 Minuten

Benutzer-Avatar
Neuling

Ich versuche, das Bild des ImageButton programmgesteuert zu ändern.

Ich versuche, diesen Code zu kopieren, aber setBackgroundDrawable ist bereits veraltet.

public void giveClue(View view) {
    Drawable replacer = getResources().getDrawable(R.drawable.icon2);
    ((ImageButton) view).setEnabled(false);
    ((ImageButton) view).setBackgroundDrawable(replacer);
    gameAdapter.giveClue(game);
}

Meine Schaltfläche wurde mit XML wie folgt erstellt:

   <ImageButton
        android:id="@+id/ImageButton2"
        android:layout_width="24dp"
        android:layout_height="22dp"
        android:layout_alignTop="@+id/imageButton1"
        android:layout_toLeftOf="@+id/ImageButton3"
        android:src="https://stackoverflow.com/questions/14233062/@drawable/icon" 
        android:onClick="giveClue"/>

  • Duplikat dieser Frage stackoverflow.com/questions/6751875/…

    – Chinmoy Debnath

    9. Januar 2013 um 10:33 Uhr

Benutzer-Avatar
Budius

Ihr Code versucht, den Hintergrund der Schaltfläche zu ändern. nicht sein Bild. Das sind zwei verschiedene Dinge

  ((ImageButton) view).setImageResource(R.drawable.icon2);

  • Es funktioniert nicht, das XML überschreibt immer, was Sie in den vorherigen Zustand geändert haben, der im XML-Attribut (app: srcCompat) angegeben ist.

    – Salah

    12. Juni um 16:52 Uhr


Probieren Sie es aus, es funktioniert bei mir. Ändern Sie das Hintergrundbild programmgesteuert.

 image.setBackgroundResource(R.drawable.ico);

  • Du solltest benutzen setImageResource stattdessen.

    – Blöder Fuchs

    1. Juni 2016 um 10:35 Uhr

Hallo, Sie können den folgenden Code verwenden

if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN ) 
{
    ((ImageButton) view).setImageResource(getResources().getIdentifier("icon2", "drawable", getPackageName()));
}
else 
{
    ((ImageButton) view).setImageDrawable(getDrawable(getResources().getIdentifier("icon2", "drawable", getPackageName())));
}

Ich hoffe, das wird Ihnen helfen.

Probieren Sie es einfach so aus:

((ImageButton) Ansicht).setImageDrawable(replacer);

Benutzer-Avatar
GoldCat

In Kotlin können Sie diesen Code verwenden:

val myImageButton = findViewById<ImageButton>(R.id.myImageButton)  

myImageButton.setOnClickListener {

     (myImageButton as ImageButton).setImageResource(R.drawable.myIcon) 

}

Benutzer-Avatar
Hasan A. Yousef

Mit Kotlin können Sie Folgendes tun:

val myImageButton = ImageButton(context).apply({
    background = null
    setImageDrawable(ContextCompat.getDrawable(context, 
                         R.drawable.ic_save_black_24px))
})

Benutzer-Avatar
Jimale Abdi

Für kotlin funktioniert das für mich

yourimagebuttonID.setImageResource(R.drawable.ic_check_black_24dp)

1228930cookie-checkImagebutton programmgesteuert ändern?

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

Privacy policy