onTouchEvent

新建"MyView"类

package onTouchEvent;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

public class MyView extends View {
    private int textX=20,textY=20;
    public MyView(Context context) {
    super(context);
    setFocusable(true);
        // TODO Auto-generated constructor stub
    }
        //画笔onDraw方法
    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        //初始化画笔
        Paint paint=new Paint();
        //设置颜色
        paint.setColor(Color.GREEN);
        //设置字体大小
        paint.setTextSize(50);
        //在画布上写文字
        canvas.drawText("Android", textX, textY, paint);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        //获取用户手指触屏的X坐标赋值与文本的X坐标
        textX=(int)event.getX();
        //获取用户手指触屏的Y坐标赋值与文本的Y坐标
        textY=(int)event.getY();
        //重绘画布
        invalidate();
        return true;

    }

}

MainActivity中将setContentView设置为当前MyView,即

setContentView(new MyView(this));

执行效果图如下:

时间: 2024-11-10 01:03:44

onTouchEvent的相关文章

Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解

[转]http://blog.csdn.net/guitk/article/details/7057155 onInterceptTouchEvent用于改变事件的传递方向.决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这就是所谓的Intercept(拦截). [tisa ps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回.即便需要拦截也应该直接返回true,然后由onTouchEvent方法进

Android-onInterceptTouchEvent()和onTouchEvent()总结

老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1.onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),则向下传递之路被截断(所有子控件将没有机会参与Touch事件),同时把事件传递给当前的控件的onTouch

(转)Android-onInterceptTouchEvent()和onTouchEvent()总结

老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1.onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),则向下传递之路被截断(所有子控件将没有机会参与Touch事件),同时把事件传递给当前的控件的onTouch

Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程

上一篇文章主要讲述了Android的TouchEvent的分发过程,其中有两个重要的函数:onInterceptTouchEvent和onTouchEvent,这两个函数可被重装以完成特定的逻辑.onInterceptTouchEvent的定义为于ViewGroup中,默认返回值为false,表示不拦截TouchEvent.onTouchEvent的定义位于View中,当ViewGroup要调用onTouchEvent时,会利用super.onTouchEvent.ViewGroup调用onTo

onInterceptTouchEvent与onTouchEvent默认返回值

其中Layout里的onInterceptTouchEvent默认返回值是false,这样touch事件会传递到View控件,Layout里的onTouch默认返回值是false, View里的onTouch默认返回值是true,当我们手指点击屏幕时候,先调用ACTION_DOWN事件,当onTouch里返回值是true的时候,onTouch回继续调用ACTION_UP事件,如果onTouch里返回值是false,那么onTouch只会调用ACTION_DOWN而不调用ACTION_UP. xm

事件分发时候的onTouchEvent,onInterceptTouchEvent,dispatchTouchEvent调用顺序

一直想弄清楚onTouchEvent,onInterceptTouchEvent,dispatchTouchEvent的执行顺序,以及内部使用switch (event.getAction())中的执行顺序.趁这次机会赶紧弄清楚. public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); Log.e(TAG, "onTouchEvent"); switch (event.getAction()

onInterceptTouchEvent和onTouchEvent调用时序

转:http://my.oschina.net/u/191330/blog/125291 onInterceptTouchEvent()与onTouchEvent()的机制: 1. down事件首先会传递到onInterceptTouchEvent()方法 2. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之return false,那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最终的目

Android中View的onTouchEvent和OnTouch区别

以自定义的TestButton为例. 我们可以通过重写onTouchEvent方法来处理诸如down move up的消息: [java] view plain copy print? public class TestButton extends Button { public TestButton(Context context) { super(context); // TODO Auto-generated constructor stub } public TestButton(Con

Android学习笔记之dispatchTouchEvent和OnInterceptTouchEvent和OnTouchEvent三个方法之间的联系...

PS:好久没有写博客了,项目正式开始启动了,但是怎么也打不起精神来...可能还是不适应放假留校...这下一年只能回家一次了...伤感...写篇博客舒坦下... 学习内容:   Android中dispatchTouchEvent和OnInterceptTouchEvent和OnTouchEvent三个方法之间的联系...这三个方法研究了整整一个下午,也没有理解的特别的好...说实话,java的源代码我始终都没有看懂究竟是怎么个调用过程...不过还是把自己理解的结果写一下把...   这三个方法是

android 可拖动控件 ontouchevent

首先附上文章的转载内容的链接: 学习android 可拖动事件首先需要对android的屏幕和touchevent参数建立一个详细的知识结构. 1.android坐标系统 一.首先明确一下 android中的坐标系统 :屏幕的左上角是坐标系统原点(0,0),原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向. 1.View的坐标     需要注意view的坐标是相对父容器而言的,包括:getTop().getBottom(),getLeft(),getRight().以getTop为例,函数源代