我无法理解onKeyUp和onKeyDown ......
我有一个类似于带有图像按钮呈现的DialPad的应用程序。每次单击按钮时,都会播放声音,例如,如果单击图像按钮0,则会播放声音为“零”的声音,并且在单击期间,图像按钮背景会发生变化。
以下是图像按钮通过屏幕点击后如何工作的示例...
private synchronized void playSound(int tone) {
if(mp != null) {
mp.stop();
mp.release();
}
mp = MediaPlayer.create(this.getApplicationContext(), tone);
mp.start();
}
private void ButtonClickSound() {
ImageButton one = (ImageButton) findViewById(R.id.btnOne);
one.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
playSound(R.raw.mamacita_one);
}
});
}
现在我的onKeyDown方法如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent ev) {
switch (keyCode) {
case KeyEvent.KEYCODE_0:
playSound(R.raw.mamacita_zero);
return true;
}
}
按钮的xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<item
android:state_pressed="true"
android:drawable="@drawable/green0" /> <!-- pressed -->
<item android:drawable="@drawable/blue0" /> <!-- default -->
我的问题是如何实现onKeyUp并让图像按钮在单击期间切换背景???
答案 0 :(得分:0)
使用ToggleButton代替图像按钮。 http://developer.android.com/reference/android/widget/ToggleButton.html
在源代码中,您可以使用ToggleButton的isChecked()属性来播放声音
将xml按钮更改为
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/greendot"
android:state_checked="true" />
<item android:drawable="@drawable/reddot" />
</selector>