博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,
👉​​​点击跳转到网站​

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后面属性分别为(在横坐标上圆心距离左上角的距离,在纵坐标上圆心距离左上角的距离,圆的半径,画笔)

效果图如下:

Android 用自定义view画圆详解_xml


这是一个简单的画圆

二、接下来咱们来画一个圆环

代码如下:

//得到屏幕宽高
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);

效果如图所示

Android 用自定义view画圆详解_android_02


以上就是本文的全部内容,希望对大家的学习有所帮助。

有什么不足的地方也希望大家在评论区指正,咱们共同学习,共同进步。