android 画布画笔使用,绘制安卓机器人

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中添加帧布局管理器

  1. Paint paint=new Paint(); //定义了一个画笔
  2. paint.setStyle(Paint.Style.FILL ); //设置画笔填充 STROKE设置画笔描边
  3. paint.setColor(0xFFFF6600); //设置画笔颜色
  4. 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);   //设置矩形参数
    }
}

运行结果:
在这里插入图片描述

发布了55 篇原创文章 · 获赞 5 · 访问量 4140

猜你喜欢

转载自blog.csdn.net/qq_43654669/article/details/103729537