Ответ 1
ваш код пытается изменить фон кнопки. а не его образ. Это две разные вещи.
((ImageButton) view).setImageResource(R.drawable.icon2);
Я пытаюсь изменить образ ImageButton программно.
Я пытаюсь скопировать этот код, но setBackgroundDrawable уже устарел.
public void giveClue(View view) {
Drawable replacer = getResources().getDrawable(R.drawable.icon2);
((ImageButton) view).setEnabled(false);
((ImageButton) view).setBackgroundDrawable(replacer);
gameAdapter.giveClue(game);
}
Моя кнопка была создана с помощью xml следующим образом:
<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"/>
Пожалуйста, помогите.
Спасибо.
ваш код пытается изменить фон кнопки. а не его образ. Это две разные вещи.
((ImageButton) view).setImageResource(R.drawable.icon2);
Попробуйте это для меня, меняйте фоновое изображение программно,
image.setBackgroundResource(R.drawable.ico);
Привет, вы можете использовать следующий код
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())));
}
Надеюсь, это поможет вам.
Просто попробуйте вот так:
((ImageButton)).setImageDrawable(replacer);
Используя Kotlin, вы можете сделать это:
val myImageButton = ImageButton(context).apply({
background = null
setImageDrawable(ContextCompat.getDrawable(context,
R.drawable.ic_save_black_24px))
})
Для котлина это работает для меня
yourimagebuttonID.setImageResource(R.drawable.ic_check_black_24dp)
Попробуйте ((ImageButton) view).setImageDrawable(replacer);