Android对活动触摸的视觉效果

Android对活动触摸的视觉效果,android,touch,android-activity,effect,Android,Touch,Android Activity,Effect,我正在开发一个Android应用程序,我想在UI中添加一些eyecandy。我有一个活动(我们称之为MainActivity),它有一些文本字段、按钮和图库。 我想实现的是:当用户触摸到这个活动的某个地方时,在他触摸的地方应该会有一些视觉效果(例如火花等) 因此,我的问题的关键部分是: a) 如何确定用户触摸的位置 b) 如何将效果绘制到屏幕上(作为活动的“叠加”) 提前感谢每一个有用的答案 (我已经检查了答案,但它似乎不适用于我的情况。)您应该覆盖活动的onTouchEvent方法。然后,您可

我正在开发一个Android应用程序,我想在UI中添加一些eyecandy。我有一个活动(我们称之为MainActivity),它有一些文本字段、按钮和图库。 我想实现的是:当用户触摸到这个活动的某个地方时,在他触摸的地方应该会有一些视觉效果(例如火花等)

因此,我的问题的关键部分是: a) 如何确定用户触摸的位置 b) 如何将效果绘制到屏幕上(作为活动的“叠加”)

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


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

您应该覆盖活动的
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);
}

您应该覆盖活动的
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);
}

如果您正在使用ICS,那么我建议您查看设置应用程序中的开发人员选项。如果您没有使用ICS,我相信您可以查看touchevents的APIDEMOS。他们在触摸上画线。其中的代码可以帮助您开始

如果您正在处理ICS,那么我建议您查看“设置”应用程序中的开发人员选项。如果您没有使用ICS,我相信您可以查看touchevents的APIDEMOS。他们在触摸上画线。其中的代码可以帮助您开始

首先,必须将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();
        }

    });

首先,必须将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();
        }

    });

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

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

谢谢,这回答了a部分)!你知道如何在活动中画一些覆盖视图的东西吗?(b) 例如,可以将ImageView放置在可以放置动画或绘制图像的坐标处。这就是我要尝试的。谢谢,这回答了a部分)!你知道如何在活动中画一些覆盖视图的东西吗?(b) 例如,可以将ImageView放置在可以放置动画或绘制图像的坐标处。这就是我要尝试的。谢谢,这回答了a部分)!你知道如何在活动中画一些覆盖视图的东西吗?有没有可能让画布覆盖我的UI?谢谢,这回答了第a部分)!你知道如何在活动中画一些覆盖视图的东西吗?有没有可能让画布覆盖我的UI?