Android 需要按钮返回到正常状态,一旦它没有在应用程序上按下
我希望我的按钮显示为按下一旦用户从屏幕上删除手指。我用两幅图片来模拟被按下的底部。任何帮助都会很好Android 需要按钮返回到正常状态,一旦它没有在应用程序上按下,android,android-studio,Android,Android Studio,我希望我的按钮显示为按下一旦用户从屏幕上删除手指。我用两幅图片来模拟被按下的底部。任何帮助都会很好 ImageButton imageButton; boolean isPressed = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
ImageButton imageButton;
boolean isPressed = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageButton =(ImageButton) findViewById(R.id.buttonID);
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sound);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isPressed) {
imageButton.setBackgroundResource(R.drawable.image);
}
else{
imageButton.setBackgroundResource(R.drawable.ispressed);
}
isPressed = !isPressed;
mediaPlayer.start();
Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();
}
});
}
}这是一个很好的选择。您可以创建一个单独的绘图表,其中一个图像用于“按下”状态,另一个图像用于默认状态,然后将其指定给按钮。您不必对按钮背景进行任何实时更新;它将为您自动在两个图像之间切换
- res/drawable/selector.xml
OnClickListener
中进行任何更新:
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isPressed = !isPressed;
mediaPlayer.start();
Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();
}
});
为什么不使用
OnTouchListener
?isPressed=!表达代码>最后将此设为false
(isPressed==false
)并查看它是否有效。看看这个网站听起来是否准确
imageButton =(ImageButton) findViewById(R.id.buttonID);
imageButton.setBackgroundResource(R.drawable.selector);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isPressed = !isPressed;
mediaPlayer.start();
Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT).show();
}
});