创建一个MyView
package cn.z.view;
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 MyView extends View {
private float X = 50;
private float Y = 50;
Paint p = new Paint(); //创建画笔
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
p.setAntiAlias(true); //设置抗锯齿
p.setColor(Color.BLUE);
canvas.drawCircle(X,Y,50,p); //第三个参数 半径
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
X = event.getX();
Y = event.getY();
invalidate(); //通知当前组件重绘自己
return true; //返回true表示该方法已经处理该事件
}
}
使用自定义组件方法:
直接在XML文件中添加
<cn.z.view.MyView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
第二种方法在Java代码中添加
LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
MyView view = new MyView(this);
layout.addView(view);
跟随手指移动的小球: