游戏开发基础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

Android游戏开发基础part3--Paint 画笔相关推荐

  1. 浅谈Android游戏开发基础和经验

    Android游戏开发基础和经验是本文要介绍的内容,主要是来了解并学习Android游戏开发的内容实例,具体关于Android游戏开发内容的详解来看本文. 做一个类似俄罗斯方块的android游戏开发 ...

  2. Android游戏开发基础part2--Canvas画布

    游戏开发基础part2--Canvas画布 又过了一周才继续做总结,四级结束了,应该可以多点时间学习游戏编程了. Canvas画布类是一个在游戏当中担当非常重要的角色,它可以绘制出不同的图形和图片,可 ...

  3. Android游戏开发基础part4--Bitmap位图的渲染与操作

    游戏开发基础part4--Bitmap位图的渲染与操作 知识点1:Bitmap与BitmapFactory 如果想通过一张图片资源文件创建一个位图,则要通过位图工厂来索引图片资源文件,从而生成一张位图 ...

  4. 千锋Android游戏开发基础视频教程-cocos2dMars版

    千锋3G学院_Android游戏开发教程_数独_01.mp4 千锋3G学院_Android游戏开发教程_数独_02.mp4 千锋3G学院_Android游戏开发教程_数独_03.mp4 千锋3G学院_ ...

  5. Android游戏开发项目实战

    Android游戏开发项目实战: 手机游戏开发工程师培训教程(Android4.3.Cocos2d-x.Untity2D/3D.跨平台引擎技术) 课程讲师:厉风行 课程分类:游戏开发 适合人群:初级 ...

  6. 【读书笔记《Android游戏编程之从零开始》】16.游戏开发基础(动画)

    1. Animation动画 在Android 中,系统提供了动画类 Animation ,其中又分为四种动画效果: ● AlphaAnimation:透明度渐变动画 ● ScaleAnimation ...

  7. Android 游戏开发必备的基础知识

    Android游戏开发: View类开发框架 SurfaceView开发框架 Graphics类开发框架 Paint与Color类介绍 Canvas介绍 几何图形绘制 字符串绘制 图像的绘制 图像的旋 ...

  8. android 实现 3d 文字,android 3d 游戏 开发 基础 第10课-2D文字显示.ppt

    <android 3d 游戏 开发 基础 第10课-2D文字显示.ppt>由会员分享,可在线阅读,更多相关<android 3d 游戏 开发 基础 第10课-2D文字显示.ppt(1 ...

  9. Android游戏开发中绘制游戏触摸轨迹的曲线图

    本篇文章主要来讲解怎样绘制游戏触摸轨迹的曲线图. 我们在onTouchEvent方法中,可以获取到触摸屏幕时手指触摸点的x.y坐标,如何用这些点形成一条无规则轨迹并把这条无规则轨迹曲线显示在屏幕上就是 ...

最新文章

  1. 9位AI教授总结2017年:技术变得平民化,但商业竞争在不断升级
  2. k8s容器探针:就绪检测、存活检测
  3. SQL Error (1130): Host IP is not allowed to connect to this MySQL server
  4. OCP大会 | 腾讯云Open DCN Networking(附PDF)
  5. SSL / TLS 协议运行机制详解
  6. 程序员为什么那么难升职
  7. 推荐5个应用 jQuery 特效的精美网站
  8. openstack 在线repo
  9. 网友投诉顺丰快递员私拆快递物品摆拍、言语骚扰 官方处理来了...
  10. Windows下搭建Octopress博客
  11. html5 (个人笔记)
  12. 算法-无向图(深度优先搜索和广度优先搜索)
  13. 更换主板后 Win10 账户密钥集不存在 0x80090016问题解决
  14. JS原创小游戏 旋转方块(源码)
  15. 垃圾回收器CMS和G1
  16. php footer'=%3e2,为基于Wordpress的博客添加CNZZ统计代码
  17. 企业信息与网络通信安全 团队成员简历-叶俊 (转)
  18. 【JVM · GC】垃圾回收器
  19. 七牛云这个API,让我轻松搞定Banner背景自动切换的功能
  20. JS简单实现京东网页轮播图

热门文章

  1. 一般拦截器 serviceImpl部分
  2. yml的mybatis的sql查看
  3. Unity3d 插值同步
  4. 机器学习07应用机器学习的建议
  5. 小程序如何封装自定义组件(Toast)
  6. IDEA 插件开发入门教程
  7. 浅尝flutter中的动画(淡入淡出)
  8. Android WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法
  9. java web 中的转发和重定向路径问题
  10. JAVA中线程同步的方法