public class CustomCirceViews extends View { //画笔 private Paint mPaint; int cy = 200; int cx = 200; public CustomCirceViews(Context context) { super(context); } public CustomCirceViews(Context context, AttributeSet attrs) { super(context, attrs); //初始化画笔 mPaint = new Paint(); //定义颜色 mPaint.setColor(Color.RED); //设置圆的类型空心还是实心 mPaint.setStyle(Paint.Style.FILL); //抗锯齿 mPaint.setAntiAlias(true); //给边框大小 mPaint.setStrokeWidth(10); } public CustomCirceViews(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } //重写是哪个方法 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override public boolean onTouchEvent(MotionEvent event) { //得到它的动作 switch (event.getAction()){ case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: cx = (int) event.getX();//X轴坐标 cy = (int) event.getY();//Y轴坐标 //刷新 invalidate(); break; case MotionEvent.ACTION_UP: break; } return true; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(cx,cy,200,mPaint);//这是画你想要的图形 } }
布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.circleview.MainActivity"> <com.example.circleview.CustomCirceViews android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
温馨提示:布局文件是在主布局里写,主布局不需要写任何代码,代码写在创建的Activit里
布局文件里一定要关联自己创建的这个Activity里