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