我正在尝试实现一个钢琴应用程序,所以我有 2 个白键图像和黑键图像之间。rect 与这 3 个图像相关联,在 onTouchListener 方法中,当我按下黑键时,getHitRect() 函数为我提供了所有 3 个值,并且所有 3 个声音同时播放。我应该进行哪些更改,以便只考虑外部图像按钮,即黑键坐标,并且只播放那个音符。它适用于图像不重叠的白键。
任何帮助深表感谢...
myButtons = new ArrayList<ImageView>();
myButtons.add(img_c); //white key1
myButtons.add(img_db); //black key
myButtons.add(img_d); //white key2
getWindow().getDecorView()
.findViewById(android.R.id.content)
.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent event) {
int action = event.getAction();
if (action != MotionEvent.ACTION_DOWN
&& action != MotionEvent.ACTION_MOVE
&& action != MotionEvent.ACTION_UP) return false;
Rect hitRect = new Rect();
ImageView button;
for(int i = 0; i < myButtons.size(); i++) {
button = myButtons.get(i);
button.getHitRect(hitRect);
if (hitRect.contains((int)event.getX(), (int)event.getY())) {
if(action==MotionEvent.ACTION_DOWN)
{
//play the sound
}
});