studio programacion móviles libros libro desarrollo desarrollar curso aprende aplicaciones android imagebutton

móviles - manual de programacion android pdf



¿Cambio de botón de imagen programáticamente? (6)

Estoy tratando de cambiar la imagen del ImageButton programáticamente.

Estoy intentando copiar este código, pero setBackgroundDrawable ya está en desuso.

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

Mi botón fue creado usando xml de la siguiente manera:

<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="@drawable/icon" android:onClick="giveClue"/>

Por favor ayuda.

Gracias.


Hola puedes usar el siguiente código

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()))); }

Espero que esto te ayudará.


Intenta esto, funciona para mí, cambia la imagen de fondo mediante programación,

image.setBackgroundResource(R.drawable.ico);


Probar ((ImageButton) view).setImageDrawable(replacer);


Solo prueba de esta manera:

(Vista (ImageButton)) .setImageDrawable (sustituto);


Tu código está intentando cambiar el fondo del botón. No es su imagen. Esas son dos cosas diferentes

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


Usando Kotlin, puedes hacer esto:

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