0

我正在开发一个 Android 应用程序,我想为 UI 添加一些视觉效果。我有一个活动(我们称之为 MainActivity),上面有一些文本字段、按钮和画廊。我想要实现的是:当用户触摸此活动的某个位置时,在他触摸的点应该有一些视觉效果(例如像闪光等)。

所以我的问题的基本部分是:a)我如何确定用户触摸的位置 b)我如何将我的效果绘制到屏幕上(作为活动的“覆盖”)。

提前感谢每一个有用的答案。

(我已经检查了这个答案,但它似乎不适用于我的情况。)

4

4 回答 4

2

首先,您必须将 onTouchListener 添加到您的根布局中,然后您可以获得用户触摸屏幕的坐标。例子 :

   float x,y;
   rl = (RelativeLayout) findViewById(R.id.root_layout);
   rl.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            float x = event.getX();
            float y = event.getY();
                return super.onTouchEvent();
        }

    });
于 2012-08-28T08:03:54.347 回答
1

要进一步回答您的问题,要进行叠加,请查看 APIDemos -> Graphics -> OpenGL ES -> Translucent GLSurfaceView。这将帮助您在活动上创建叠加层。API 演示中可能还有一些其他示例可以为您提供一些帮助。Android 的 API 演示是一组很好的示例,可以解决一些已知问题。

于 2012-08-28T08:50:39.147 回答
1

您应该覆盖onTouchEvent您的活动的方法。然后您可以获取触摸事件的坐标:

@Override
public boolean onTouchEvent(MotionEvent event) {

    float touchX = event.getX();
    float touchY = event.getY();

    switch(event.getAction()) {
    case MotionEvent.ACTION_DOWN:
        // touch down
        break;
    case MotionEvent.ACTION_MOVE:
        // movement
        break;
    case MotionEvent.ACTION_UP:
        // touch up
        break;
    default:
        // default
    }

    return super.onTouchEvent(event);
}
于 2012-08-28T08:02:06.090 回答
0

如果您正在使用 ICS,那么我建议您查看“设置”应用程序中的“开发人员选项”。如果您不使用 ICS,我相信您可以查看 APIDEMOS for touchevents。他们在触球上画线。里面的代码,可以让你开始。

于 2012-08-28T08:02:38.883 回答