本代码来源于《疯狂java讲义》第二版p48,作了部分修改,能在aide上运行。
创建一个java文件,命名为MyView,继承View:
package com.bollmove;
import android.content.*;
import android.graphics.*;
import android.util.*;
import android.view.*;
public class MyView extends View
{
//定义圆心坐标
public float x = 40f, y=50f;
//定义画笔并创建画笔
Paint paint = new Paint();
//构造函数
public MyView (Context context)
{
super(context);
}
public MyView (Context context, AttributeSet set)
{
super(context, set);
}
public MyView (Context context, AttributeSet set, int defStyleAttr)
{
super(context, set, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas)
{
// TODO: Implement this method
super.onDraw(canvas);
//设置画笔的颜色
paint.setColor(Color.RED);
canvas.drawCircle(x, y, 15, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
// TODO: Implement this method
//修改圆心坐标
x=event.getX();
y=event.getY();
//通知当前组件重绘自己
invalidate();
return true; //true表明已经处理该方法
}
}
main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<com.bollmove.MyView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
效果图: