13

ImageButton を作成し、クリックするとサウンドを再生する次のコードがあります。

ImageButton SoundButton1 = (ImageButton)findViewById(R.id.sound1);
SoundButton1.setImageResource(R.drawable.my_button);

SoundButton1.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            mSoundManager.playSound(1);
            return true;
        }

        return false;
    }
});

問題は、押したときに ImageButton の画像を変更することです。OnTouchListener はタッチをオーバーライドしているようで、画像の変更を許可していません。OnTouchListener を削除するとすぐに、ImageButton を押すと別の画像に切り替わります。OnTouchListener を使用しながら、ImageButton で画像を変更する方法についてのアイデアはありますか? どうもありがとうございました!

4

2 に答える 2

35
SoundButton1.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            mSoundManager.playSound(1);
            btnmode.setImageResource(R.drawable.modeitempressed);

        }
         elseif (event.getAction() == MotionEvent.ACTION_UP ) {
            btnmode.setImageResource(R.drawable.modeitemnormal);

        }

        return false;
    }
});
于 2011-02-28T18:59:06.083 に答える
4

解決策は簡単だと思います: return trueontouchlistener から を削除します。それ以降、タッチと入力に応答するすべての操作がブロックされます。それreturn falseも作ってください。

このようにして、他のアクションもタッチに応答できるようになります。

于 2010-04-11T17:39:31.673 に答える