Android游戏开发基础part3--Paint 画笔

游戏开发基础part3--Paint 画笔

Paint画笔是绘图的辅助类,一般它是作为画布的参数来实现相应的效果,Paint类中包含文字与位图的样式、颜色等属性信息。Paint的常用方法如下:

1.setAntiAlias(boolean aa)

作用:设置画笔是否无锯齿

参数:true表示无锯齿,false表示有锯齿,默认为flase。

2.setAlpha(int a)

作用:设置画笔透明度

参数:透明度

3.setTextAlign(Paint.Align align)

作用:设置绘制文本的锚点

参数:Paint.Align类中的常量

4.measureText(String text)

作用:获取文本内容的宽度

参数:文本内容

5.setStyle(Style style)

作用:设置画笔样式

参数:样式实例

6.setColor(int color)

作用:设置画笔颜色

参数:色值

7.setStrokeWidth(float width)

作用:设置画笔的粗细程度

参数;画笔粗细值

8.setTextSize(float textSize)

作用:设置画笔在绘制文本时,文本字体的尺寸

参数:尺寸值

9.setARGB(int a, int r ,int g, int b)

作用:设置画笔的ARGB分量

第一个参数:画笔透明度分量

第二个参数:画笔红色分量

第三个参数:画笔绿色分量

第四个参数:画笔蓝色分量

 

创建项目实例:PaintProject

项目运行效果:

项目源代码:

==>MySurfaceView.java

package com.paint;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;public class MySurfaceView extends SurfaceView implements Callback {//用于控制SurfaceViewprivate SurfaceHolder sfh;private Paint paint;private Canvas canvas;public MySurfaceView(Context context) {super(context);//实例SurfaceHoldersfh = this.getHolder();//为SurfaceView添加状态监听sfh.addCallback(this);//实例一个画笔paint = new Paint();//设置画笔颜色为白色paint.setColor(Color.WHITE);}@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubmyDraw();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}/*** 自定义绘图函数*/public void myDraw(){try{canvas = sfh.lockCanvas();if (canvas != null){canvas.drawColor(Color.WHITE);//----设置画笔无锯齿Paint paint1 = new Paint();canvas.drawCircle(40, 30, 20, paint1);paint1.setAntiAlias(true);canvas.drawCircle(100, 30, 20, paint1);//----设置画笔的透明度canvas.drawText("无透明度",100,70,new Paint());Paint paint2 = new Paint();paint2.setAlpha(0x77);canvas.drawText("半透明度",20,70,paint2);//----设置绘制文本的锚点canvas.drawText("锚点", 20, 90, new Paint());Paint paint3 = new Paint();//设置以文本的中心绘制paint3.setTextAlign(Paint.Align.CENTER);canvas.drawText("锚点",20,105,paint3);//-----获取文本的长度Paint paint4 = new Paint();float len = paint4.measureText("文本宽度:");canvas.drawText("文本长度:"+len, 20, 130, new Paint());//----设置画笔样式canvas.drawRect(new Rect(20,140,40,160),new Paint());Paint paint5 = new Paint();//设置画笔不填充paint5.setStyle(Style.STROKE);canvas.drawRect(new Rect(60,140,40,160), paint5);//----设置画笔颜色Paint paint6 = new Paint();paint6.setColor(Color.GRAY);canvas.drawText("灰色", 30, 180, paint6);//----设置画笔粗细程度canvas.drawLine(20, 200, 70, 200, new Paint());Paint paint7 = new Paint();paint7.setStrokeWidth(7);canvas.drawLine(20, 220, 70, 220, paint7);//----设置画笔绘制文本的字体粗细Paint paint8 = new Paint();paint8.setTextSize(20);canvas.drawText("文字尺寸", 20, 260, paint8);//----设置画笔ARGB分量Paint paint9 = new Paint();paint9.setARGB(0x77, 0xff, 0x00, 0x00);canvas.drawText("红色半透明", 20, 290, paint9);}} catch(Exception e){}finally{if(canvas != null)sfh.unlockCanvasAndPost(canvas);}}
}


 

 

转载于:https://www.cnblogs.com/wwj9413/archive/2012/06/18/2638570.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jvm 参数_6个提高性能的JVM参数

截止到2020年五月,JVM中仅仅只是关于垃圾回收和内存相关的参数就已经超过600个。如果算上其他方面的参数,JVM相关的总参数能轻松超过1000个。参数太多了,弄得人很懵逼。在这边文章中,我们只选取了7个比较重要,且有用的…

zabbix入门之定义触发器

zabbix入门之定义触发器 触发器的概念 触发器的定义:界定某特定的item 采集到数据的非合理区间或非合理状态。通常为逻辑表达式。 逻辑表达式(阈值):通常用于定义数据的不合理区间,其结果如下: O K (符合条件&#xff…

linux重启memcache_Linux中安装Memcached服务的方法

Linux中安装Memcached服务的方法导语:在Linux中安装Memcached服务需要执行一些命令行,下面就由小编为大家介绍一下Linux中安装Memcached服务的方法,大家一起去看看吧!下载并安装Memcache服务器端服务器端主要是安装memcache服务器…

[html] 说说页面中字体渲染规则是怎样的?会有哪些因素影响字体的渲染?

[html] 说说页面中字体渲染规则是怎样的?会有哪些因素影响字体的渲染? 字体渲染: 1.解码,根据web服务器返回的(或者本地网页本身的)content-type charset等信息确定编码,将网页解码成Unicode字…

mybatis字符串转成数字_Python字符串三种格式化输出

字符串格式化输出是python非常重要的基础语法,今天就把三种格式化输出做一个简单的总结,希望对大家有帮助。格式化输出:内容按照一定格式要求进行输出。1.使用占位符%输出python2.6版本之前,使用%格式化字符串沿用的是C语言的输出…

eclipse dorado plugin

http://lindows.iteye.com/blog/224004 下载中心 http://www.bstek.com/downloadcenter.htm dorado debug shutcut page time:CtrlShiftF12 bstekIDE Eclipse插件扩展点应用介绍 http://macrochen.iteye.com/blog/138625 BstekIDE_1.2.2_Installer.jar http://www.bstek.com/do…

[html] 如何构建“弱网络环境”友好的项目?

[html] 如何构建“弱网络环境”友好的项目? 采用PWA技术个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

[html] 举例说明锚点定位有什么作用?

[html] 举例说明锚点定位有什么作用? 我能想象到的一种应用场景: 一、我们在做一个很长的网页时,需要在页面内做一个导航,点击导航里的链接不是新开一个窗口或者跳转到其他网址,而是跳转到当前页的某一个位置。那么所要跳转到的那…

逆反过程的学习会如何

C#工作已三年了,突然的一天头脑一热就去买了几本C/C语言的书,准备冲实下自已,但不知这个学习的过程会不会不适应呢。因为这是个逆反的过程吧!我是这么认为的。记得从不懂oracle到入门只用了一个星期的时间,现在也只能算是个中上的…

android真机调式问题之offline target

用cmd命令进入android-sdk-windows\platform-tools目录, adb kill-server; adb start-server; 然后USB断下重连,以前的解决办法是重启手机。。。转载于:https://www.cnblogs.com/bvin/archive/2012/06/21/2557709.html

三个不等_2道真题,讲透「基本不等式」的使用原则 | 真题精讲-11

「不等式」和「最值」之间有着非常天然的强联系;基本不等式有3个非常明显的形式特征;知识点的用法比知识点本身更重要。先发福利:这里有6场「高考数学」系列Live的讲义,全拿去,送给你——《高考数学:免费送…

[html] 编写html时,你有没有用过Emmet插件呢?说说它的优点及规则有哪些?

[html] 编写html时,你有没有用过Emmet插件呢?说说它的优点及规则有哪些? 用过,vscode编辑器自带支持Emmet语法; 它可以帮助快速编写HTML代码,减少复制粘贴的操作; 常见规则: 1. >…

python web自动化测试实验报告_Python:web自动化测试

用selenium包。# -*- coding: utf-8 -*-# 说明: 当前的浏览器驱动用的是edge浏览器.# 需要下载浏览器驱动,并把它的路径添加到环境变量from selenium import webdriverimport timedriver webdriver.Edge()homepage_url http://10.180.10.93:8000/driver.get(homepage_url)dri…

[html] 怎样去除iOS和Android中的输入URL地址的控件条呢?

[html] 怎样去除iOS和Android中的输入URL地址的控件条呢? setTimeout(scrollTo,0,0,0);个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

ajax success function_Django:AJAX(二)

3|0jQuery实现的AJAX最基本的jQuery发送AJAX请求示例&#xff1a;<!DOCTYPE html><html lang"en"> <head> <meta charset"UTF-8"> <title>Title</title> <meta name"viewport" content"widthdevice…

无废话ExtJs 入门教程十[单选组:RadioGroup、复选组:CheckBoxGroup]

继上一节内容&#xff0c;我们在表单里加了个一个单选组&#xff0c;一个复选组: 1.代码如下&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <ht…

[html] 举例说明写一个button的按钮的方法有哪些?

[html] 举例说明写一个button的按钮的方法有哪些&#xff1f; 使用 标签 其值直接写在标签内使用input标签 type为 buttton 值需要通过用 value""的形式写出来个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。…

iou画 yolov3_yolov3环境配置训练及优化

科普gcc/g: - GNU project C and C compiler.When you compile C programs, you should invoke GCC as g instead.Cuda:GPU Accelerated Computing with C and C一、Ubuntucudacudnnopencvdarknet/yolov3环境配置1.NVIDIA显卡驱动安装首先查看系统是否已经安装NVIDIA驱动&#…

第十三章 Perl的面向对象编程

第十三章 Perl的面向对象编程 by flamephoenix 一、模块简介 二、Perl中的类 三、创建类 四、构造函数 实例变量五、方法 六、方法的输出 七、方法的调用 八、重载 九、析构函数 十、继承 十一、方法的重载 十二、Perl类和对象的一些注释 本章介绍如何使用Perl的面向对象编…

python抢票代码_GitHub标星超12K,抢票神器大更新,支持候补

掐指一算&#xff0c;距离国庆黄金周还有半个月的时间!你出行的车票都抢到了吗?图片来自 pexels根据国务院办公厅发布的关于 2019 年部分节假日安排的通知&#xff0c;国庆放假安排是&#xff1a;10 月 1 日至 7 日。想要十一出行的小伙伴们&#xff0c;想必前几天刚经历了一波…