Это хороший кандидат для использования «Списка состояний» для рисования .Вы создаете один чертеж, который имеет одно изображение для «нажатого» состояния и другое для состояния по умолчанию, а затем назначаете его для своей кнопки.Вам не нужно обновлять фон кнопки в режиме реального времени;он просто автоматически переключится между двумя изображениями для вас.
- res / drawable / selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ispressed"/>
<item android:drawable="@drawable/image"/>
</selector>
Теперь вы просто устанавливаете фон кнопки на это напрямую(либо в Java, либо в XML):
imageButton =(ImageButton) findViewById(R.id.buttonID);
imageButton.setBackgroundResource(R.drawable.selector);
И тогда вам не нужно вносить какие-либо обновления в OnClickListener
:
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isPressed = !isPressed;
mediaPlayer.start();
Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();
}
});