Android编程之绘图canvas基本用法示例
时间:2022-07-28
本文章向大家介绍Android编程之绘图canvas基本用法示例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了Android编程之绘图canvas基本用法。分享给大家供大家参考,具体如下:
MainActivity的代码如下:
package example.com.myapplication;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实例化GraphicsView
GraphicsView gv = new GraphicsView(this);
/* 在以前我们通过setContentView(R.layout.activity_main)显示布局文件
* 本例中使用GraphicsView对象gv代替以前布局文件
*/
setContentView(gv);
}
}
另一个定义画布画笔的class类
GraphicsView
其代码如下::
package example.com.myapplication;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
import android.view.View;
public class GraphicsView extends View{
//声明画笔
Paint paint=null;
public GraphicsView(Context context) {
super(context);
/*----------------------------------------------
* 部分书籍中把Paint paint=new Paint();放在onDraw方法中,建议
* 尽量不要把初始化画笔放在onDraw方法中,这是因为:onDraw经常会运行
* 到的,不要在里面new对象,越少越好,不然很浪费内存
*--------------------------------------------*/
//获取画笔,初始化画笔
paint=new Paint();
}
@Override
protected void onDraw(Canvas canvas){
//设置画布背景为白色
canvas.drawColor(Color.WHITE);
//设置画笔为红色
paint.setColor(Color.RED);
//使用当前画笔绘制一个左上角坐标为80,20,右下角坐标为360,180的矩形
canvas.drawRect(80,20,360,180, paint);
//设置画笔为绿色
paint.setColor(Color.GREEN);
//使用当前画笔绘制一个圆心坐标为220,100,半径为60的圆
canvas.drawCircle(220,100, 60, paint);
}
}
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
- TensorFlow实现神经网络入门篇
- 27.反射,类加载器,设计模式,jdk新特性
- SDP(6):分布式数据库运算环境- Cassandra-Engine
- 配置dg broker的问题分析及修复(r6笔记第84天)
- SDP(5):ScalikeJDBC- JDBC-Engine:Streaming
- SDP(4):ScalikeJDBC- JDBC-Engine:Updating
- SDP(3):ScalikeJDBC- JDBC-Engine:Fetching
- SDP(2):ScalikeJDBC-Connection Pool Configuration
- 使用外部表关联MySQL数据到Oracle(r6笔记第100天)
- 使用selenium模块模拟浏览器爬去网页,并进行点击定位内容笔记
- python 报错'gbk' codec can't encode character 'ue5d1' in position 0:
- python文件打开方式详解——a、a+、r+、w+区别
- 三封报警邮件的分析(r6笔记第95天)
- HCTF2017 部分 Web 出题思路详解
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 最近的项目系之3——core3.0整合Senparc
- 使用bat执行java项目
- Core + Vue 后台管理基础框架2——认证
- Core + Vue 后台管理基础框架3——后端授权
- Core + Vue 后台管理基础框架4——前端授权
- ent orm笔记4---Code Generation
- Core + Vue 后台管理基础框架5——系统审计
- Core + Vue 后台管理基础框架6——业务日志
- Lucene笔记一
- android9.0中SharedPreferences源码分析(一)
- Core + Vue 后台管理基础框架8——Swagger文档
- .net core国际化
- Cache-Aside Pattern
- Lucene笔记二
- Spring的事务传播行为