Android 自定义控件圆形图案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaohuiyang_949/article/details/79048402

自定义控件圆形图案

主要是利用Paint和Canvas,个人觉得这个demo没有什么需要讲解的,直接看代码就行。下面是代码。
布局代码activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="f3.nsu.com.drawcircle.MainActivity">


    <f3.nsu.com.drawcircle.Circle
        android:id="@+id/myCircle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="50dp"/>

</RelativeLayout>

MainActivity
package f3.nsu.com.drawcircle;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

/**
 * 利用画布画圆
 */
public class MainActivity extends AppCompatActivity {

    private Circle myCircle;        //Circle自定义控件
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //绑定控件
        myCircle  = (Circle) findViewById(R.id.myCircle);
    }
}
Circle.java
package f3.nsu.com.drawcircle;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;

/**
 * Created by zhy on 2017/7/8.
 * 画圆
 * 自定义控件
 */
public class Circle extends View {
    //预定一个颜色
    private int color1 = Color.parseColor("#ff0000");

    public Circle(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    protected void onDraw(Canvas canvas){
        Paint p = new Paint();      //创建一个画笔
        p.setColor(color1);     // 设置颜色
        p.setAntiAlias(true);       // 设置画笔的锯齿效果。 true是去除
        canvas.drawCircle(20, 20, 16, p);
    }
}

其实代码很简单,重点的就是Circle中的onDraw方法中画笔和画布的使用。

猜你喜欢

转载自blog.csdn.net/zhaohuiyang_949/article/details/79048402