下面的程序重写了View组件的onTouchEvent(MotionEvent event)方法,这表示该组件自己就可以处理触摸屏事件,当用户手指在屏幕上移动时,该View上绘制的小球将会跟随用户手指。
drawview.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<org.crazyit.event.DrawView
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
DrawView.xml:
package com.example.helloandroid;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class DrawView extends View{
public float currentX=40;
public float currentY=50;
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
Paint p=new Paint();
p.setColor(Color.RED);
canvas.drawCircle(currentX, currentY, 15, p);
}
public boolean onTouchEvent(MotionEvent event){
this.currentX=event.getX();
this.currentY=event.getY();
this.invalidate();
return true;
}
}