使用MotionEvent跟踪手指触摸?

时间:2011-07-04 07:10:59

标签: android touch

我要做的是:

  • 在屏幕上有多个图像,这些图像将充当按钮。
  • 当手指触摸屏幕并悬停任何图像(任何按钮)时,图像将更改为另一个图像(它看起来像一个悬停按钮)。
  • 当他悬停另一个时,同样会发生,前一个将返回其状态。

我尝试使用OnTouchListener跟踪该内容并且无效。然后,我读到了Motionevent,我认为这可能会有所帮助,但我不确定是否会这样做。

任何人都可以回答或建议这样做吗?

----------------------------------------------- -------

更新

我试过这个,但似乎没有用。这适用于img1相同的代码适用于img2

    img1.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            while(true){
            if(event.getAction()== MotionEvent.ACTION_OUTSIDE)
                img1.setImageResource(R.drawable.img); //default image
            else
                img1.setImageResource(R.drawable.img_pressed);

            }
        }
    });

2 个答案:

答案 0 :(得分:-1)

您需要创建一个如下所示的选择器:

<?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/img_selected" /> <!-- pressed -->
    <item android:state_focused="true" android:drawable="@drawable/img_hover" /> <!-- focused -->
    <item android:drawable="@drawable/img_normal" /> <!-- default -->
</selector>

修改

将其分配给您的ImageButton / Button drawable,然后在代码部分添加逻辑以显示正常,选定和悬停以获得所需的外观。

答案 1 :(得分:-2)

对于那些可能感兴趣的人:

我无法在目标设备级别(API级别4)找到问题的解决方案。所以,我放弃了!