1.首先引入布局xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.example.hua.CirclelView android:id="@+id/cv" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
2.创建一个继承自view的Java类,CircleView
public class CirlView extends View { public CirlView(Context context) { super(context); } public CirlView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public CirlView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public CirlView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } }
3.然后在onDraw里面创建画布
/** * 绘图 * @param canvas */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int width = getWidth(); int height = getHeight(); //定义画笔 Paint paint1 = new Paint(); Paint paint2 = new Paint(); Paint paint3 = new Paint(); //定义画笔颜色 paint1.setColor(Color.BLUE); paint2.setColor(Color.YELLOW); paint3.setColor(Color.GREEN); //在画布上开始画圆 canvas.drawCircle(100,100, 100, paint1); canvas.drawCircle(200,200,150,paint2); canvas.drawCircle(300,300,200,paint3);
drawCircle后面属性分别为(在横坐标上圆心距离左上角的距离,在纵坐标上圆心距离左上角的距离,圆的半径,画笔)
效果图如下:
这是一个简单的画圆
二、接下来咱们来画一个圆环
代码如下:
//得到屏幕宽高 int width = getWidth(); int height = getHeight();
设置圆环形状和大小
//消除锯齿 paint1.setAntiAlias(true); paint2.setAntiAlias(true); paint3.setAntiAlias(true); //因为绘图有一个先后的层级,所以要是半径最大的,否则会被后来的圆覆盖掉 canvas.drawCircle(width/2,height/2,300,paint1); canvas.drawCircle(width/2,height/2,200,paint2); canvas.drawCircle(width/2,height/2,100,paint3);
效果如图所示
以上就是本文的全部内容,希望对大家的学习有所帮助。
有什么不足的地方也希望大家在评论区指正,咱们共同学习,共同进步。