Android中使用画笔和画布绘制一个矩形
场景
在Android中画笔使用Paint类,画布使用Canvas类来表示。
绘图的基本步骤
首先编写一个继承自View的自定义View类,然后重写其onDraw方法,最后把自定义的view添加到actvity中。
效果

注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
首先在要显示的Activity的布局文件添加一个id。
<?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"
android:id="@+id/forever"
tools:context=".CanvasActivity"> </FrameLayout>
然后在包下新建一个自定义View类,这里是MyView使其继承View类并编写一个带一个参数的构造方法和重写onDraw方法。
在重写的onDraw方法中新建画笔并设置一些属性,然后使用画笔在画布上指定的位置绘制矩形。package com.badao.alarmmanager;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View; 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.drawRect(,,,,paint); }
}
然后将此自定义view添加到activity中
package com.badao.alarmmanager; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle;
import android.widget.FrameLayout; public class CanvasActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_canvas);
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.forever);
frameLayout.addView(new MyView(this));
}
}
Android中使用画笔和画布绘制一个矩形的更多相关文章
- Android中使用Canvas和Paint绘制一个安卓机器人
场景 在Android中画笔使用Paint类,画布使用Canvas类来表示. 绘图的基本步骤 首先编写一个继承自View的自定义View类,然后重写其onDraw方法,最后把自定义的view添加到ac ...
- HTML5 在canvas绘制一个矩形
笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/32930501 一.绘制矩形 canvas使用原点(0,0)在左上角的坐标系统 ...
- 使用konva来绘制一个矩形
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android OpenGL ES(十一)绘制一个20面体 .
前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形.其它所有复杂的2D或3D图形都是由这些基本图形构成. 本例介绍如何使用三角形构造一个正20面体.一个正20面体,有12个顶点,20 ...
- android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?
默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString( ...
- Android中ExpandableListView,每次只展示一个分组
// 只允许打开一个分组 expandListView.setOnGroupExpandListener(new OnGroupExpandListener() { @Override public ...
- Android中饼状图的绘制
https://blog.csdn.net/cen_yuan/article/details/52204281
- Android中View绘制优化之三---- 优化View
本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 译三: 优化视图 关于如何设计自定义View以及响应触摸时间等,请看Android developer : 地 ...
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
随机推荐
- c#实现ofd文件转图片功能 (附执行程序)
前言 ofd文件的作用就是保证信息能如实的存储.传递.显示.保证ofd文件的真实性靠的是签名:ofd 的显示需要专用软件.ofd标准是新的国家标准,应用范围远不如pdf:现有浏览器不能解析ofd.支持 ...
- Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator
可以推出 min[i]要么是i要么是1,当a序列中存在这个数是1 max[i]的话就比较麻烦了 首先对于i来说,如果还没有被提到第一位的话,他的max可由他后面的这部分序列中 j>=i 的不同数 ...
- 华硕win10U盘重装系统进入pe
1.先要制作一个U盘的PE启动盘,建议使用WIN8 PE 2.将制作好的PE启动盘接上电脑,开机按F2键进入BIOS ,先将[Secure]菜单下[Secure Boot Control]选项设置为[ ...
- SpringCloud与微服务Ⅲ --- SpringCloud入门概述
一. 什么是SpringCloud SpringCloud基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetF ...
- SpringCloud与微服务Ⅸ --- Zuul路由网关
一.Zool是什么 Zuul包含了对请求路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...
- Linux驱动管理
一.驱动更新 本示例为更新网卡驱动,把新的驱动文件放到/root/目录下,然后执行下面的命令 备份已有的文件,将新的文件复制的相应位置 mv /lib/modules/`uname -r`/kerne ...
- Head First设计模式——状态模式
糖果机 如下糖果机工作状态图,我们对这个状态图进行编码实现糖果机的工作过程 这个状态图的每个圆圈代表一个状态,可以看到有4个状态同时又4个动作,分别是:“投入1元钱”.“退回1元钱”.“转动曲柄”.“ ...
- js的三种输出语句,以及html的运行循序
js最常见的三种输出语句 1.console.log()这个语句是在浏览器控制台输出的.进入网页点击f12可查看 2.alert()弹出一个对话框, 3.document.write这个语句是在页面输 ...
- Lua使用luasocket http请求例子
local http=require("socket.http"); local request_body = [[login=user&password=123]] lo ...
- 如何更改Jframe里Jpanel的大小
先贴代码: package xiya; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; ...