自定义view 之基础

76 阅读1分钟

1.画笔和画布

xml布局

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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=".MainActivity1"
    android:id="@+id/frag">
    
</FrameLayout>

activity

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main1)
        var fra = findViewById<FrameLayout>(R.id.frag)
        fra.addView(MyView(this))
    }
}

自定义view1

public class MyView extends View {

    public MyView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();  // 创建画笔
        paint.setColor(0xFFFF6600);
        paint.setStyle(Paint.Style.FILL); // 填充颜色
        canvas.drawArc(10,10,200,200,0,360,true,paint); // 绘制圆形
        // canvas.drawRect(10,10,200,200,paint); 绘制矩形


    }
}

绘制图形

image.png

2绘制几何图形 image.png

自定义view2

public class MyView2 extends View {
    public MyView2(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setColor(0xFFFF6600);
        paint.setStyle(Paint.Style.FILL);
        Path path = new Path();
        path.addRect(150,100,151,10000,Path.Direction.CW);
        paint.setTextSize(60);

//        canvas.drawArc(10,10,200,200,0,360,true,paint);
//        canvas.drawRect(10,10,200,200,paint);
        canvas.drawTextOnPath("文字纵向排列朝向右",path,0,0,paint);


    }
}

绘制后的图形

image.png

3 绘制文本

image.png

image.png

4 绘制图片

image.png

image.png

image.png

image.png

image.png

image.png

image.png

前后效果图

image.png

4 绘制路径

image.png

image.png

image.png