Android : 画布的使用 简单应用

示例图:

MyView.java:

java 复制代码
package com.example.demo;

import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

import com.example.myoomtest.R;

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(Color.RED);
        //设置画笔的风格,如 Style.FILL(实心)、
        // Style.FILL_AND_STROKE(同时显示实心和空心)或 Style.STROKE(空心)。
        paint.setStyle(Paint.Style.FILL);
        //设置空心 边框 宽度
        paint.setStrokeWidth(20.0f);

        //在画布上画条线
        /***
         * xxxxxx
         Y 000000
         Y 000000
         Y 000000
         * */
        canvas.drawLine(0,50,500,50,paint);//画一条直线
        canvas.drawLine(100,0,100,200,paint);//画一条竖线
        canvas.drawLine(300,0,600,200,paint);//画一条斜线

        Paint paint2 = new Paint();
        paint2.setStyle(Paint.Style.STROKE);//(空心)
        paint2.setStrokeWidth(10);//边框大小
        paint2.setARGB(100,120,255,100);
        /**
         * 画矩形 rect
         * */
        canvas.drawRect(100,300,300,500,paint2);


        Paint paint3 = new Paint();
        paint3.setStyle(Paint.Style.STROKE);//(空心)
        paint3.setStrokeWidth(10);//边框线大小
        paint3.setARGB(100,120,255,100);
        /**
         * x , y  位置
         * 圆的 半径
         * 画圆形 circle
         * */
        canvas.drawCircle(600f,600f,60f,paint3);
        canvas.drawCircle(700f,700f,60f,paint);


        /**画文字
         * 基准线
         * */
        Paint paint4 = new Paint();
        paint4.setARGB(100,120,255,0);
        paint4.setTextSize(200);//文字大小
        paint4.setStrokeWidth(10);//边框线大小
        //基准线
        canvas.drawLine(0,1000,1000,1000,paint4);
        canvas.drawText("appblmqq",20,1000,paint4);

        /**
         * 绘制图片到画布
         * */
        Paint paint6 = new Paint();
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.kk),200,1200,paint6);
    }


}

MainActivity.java

java 复制代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);

        setContentView(new MyView(this));
    }

}
相关推荐
智者知已应修善业9 分钟前
【51单片机单按键控制2个LED循环闪烁】2022-12-7
c语言·经验分享·笔记·嵌入式硬件·51单片机
vocal14 分钟前
【Android 构建优化】R8 : 混淆,压缩与优化
android
叽哥20 分钟前
Kotlin学习第 7 课:Kotlin 空安全:解决空指针问题的核心机制
android·java·kotlin
诺诺Okami22 分钟前
Android Framework-Launcher-默认布局的加载
android
狂浪天涯39 分钟前
Android Security | SEAndroid 的主体
android
所愿ღ1 小时前
JavaWeb-Session和ServletContext
java·笔记·servlet
程序员东岸2 小时前
C语言入门指南:字符函数和字符串函数
c语言·笔记·学习·程序人生·算法
xiezhr2 小时前
一款带有AI功能的markdown笔记工具
笔记·程序员·产品
马 孔 多 在下雨4 小时前
安卓旋转屏幕后如何防止数据丢失-ViewModel入门
android
Katzelala7 小时前
[K8S学习笔记] Service和Ingress的关系
笔记·学习·kubernetes