android 画布画笔使用,绘制机器人
1.设置布局管理器为帧布局
<?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"
android:id="@+id/framelayout"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</FrameLayout
2.创建新的activity为myView,继承自view
- 重写ondraw方法
- paint.setAntiAlias(true); //采用抗锯齿功能,画的更加圆滑
- canvas.drawArc(rectF,-10,-160,false,paint); //绘制弧
- canvas.drawRect(100,75,190,150,paint); //绘制矩形
- canvas.drawLine(110,15,125,35,paint); //绘制线
- canvas.drawCircle(125,53,4,paint); //绘制圆形
- rectF_leg.offset(40,0); //设置偏移量
package com.example.acer.jiqiren;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override //重写ondraw方法
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//绘制机器人
Paint paint=new Paint(); //创建画笔工具
paint.setAntiAlias(true); //采用抗锯齿功能,画的更加圆滑
paint.setColor(0xFFA4C739); //设置画笔颜色为绿色
//绘制机器人的头
RectF rectF=new RectF(10,10,100,100) ; //定义外轮廓矩形
rectF.offset(90,20);
canvas.drawArc(rectF,-10,-160,false,paint); //绘制弧 控制弧大小,指定角度,扫过的角度,是否包括圆形在内(扇形)
//绘制眼睛
paint.setColor(0xFFFFFFFF); //完全不透明的白色
canvas.drawCircle(165,53,4,paint); //绘制圆形 眼睛
canvas.drawCircle(125,53,4,paint); //绘制圆形 眼睛
//绘制线
paint.setColor(0xFFA4C739);
canvas.drawLine(110,15,125,35,paint); //绘制线,起始坐标,终点坐标,画笔对象
canvas.drawLine(180,15,165,35,paint); //绘制线,起始坐标,终点坐标,画笔对象
//绘制身体
paint.setColor(0xFFA4C739);
canvas.drawRect(100,75,190,150,paint); //绘制矩形
RectF rectF_body=new RectF(100,140,190,160);
canvas.drawRoundRect(rectF_body,10,10,paint); //绘制圆角矩形
//绘制胳膊
paint.setColor(0xFFA4C739);
RectF rectF_arm=new RectF(75,75,95,140);
canvas.drawRoundRect(rectF_arm,10,10,paint); //第一个胳膊绘制圆角矩形
rectF_arm.offset(120,0); //设置第二根胳膊的偏移量
canvas.drawRoundRect(rectF_arm,10,10,paint); //第二个胳膊绘制圆角矩形
//绘制腿
paint.setColor(0xFFA4C739);
RectF rectF_leg=new RectF(115,150,135,200);
canvas.drawRoundRect(rectF_leg,10,10,paint); //绘制圆角矩形
rectF_leg.offset(40,0); //设置第二根胳膊的偏移量
canvas.drawRoundRect(rectF_leg,10,10,paint); //绘制圆角矩形
}
}
3.在mainActivity中添加帧布局管理器
addView方法
- frameLayout.addView(new MyView(this));
package com.example.acer.jiqiren;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.FrameLayout;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FrameLayout frameLayout=findViewById(R.id.framelayout);
frameLayout.addView(new MyView(this));
}
}
运行结果:
绘制矩形
其他的同上,需要在mainActivity中添加帧布局管理器
- Paint paint=new Paint(); //定义了一个画笔
- paint.setStyle(Paint.Style.FILL ); //设置画笔填充 STROKE设置画笔描边
- paint.setColor(0xFFFF6600); //设置画笔颜色
- canvas.drawRect(10,10,280,150,paint); //设置矩形参数
public class myView extends View {
public myView(Context context) {
super(context);
}
@Override //重写ondraw方法
protected void onDraw(Canvas canvas) { //画布
super.onDraw(canvas);
Paint paint=new Paint(); //定义了一个画笔
paint.setColor(0xFFFF6600); //设置画笔颜色 默认是完全透明,设置成完全不透明4
paint.setStyle(Paint.Style.FILL ); //设置画笔填充
canvas.drawRect(10,10,280,150,paint); //设置矩形参数
}
}
运行结果: