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); 绘制矩形
}
}
绘制图形
2绘制几何图形
自定义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);
}
}
绘制后的图形
3 绘制文本
4 绘制图片
前后效果图
4 绘制路径