引自:http://www.cnblogs.com/-OYK/archive/2011/10/25/2223624.html

Android Paint和Color类

 

要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上。Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下:

setAntiAlias: 设置画笔的锯齿效果。
   setColor: 设置画笔颜色
   setARGB:  设置画笔的a,r,p,g值。
   setAlpha:  设置Alpha值
   setTextSize: 设置字体尺寸。
   setStyle:  设置画笔风格,空心或者实心。
   setStrokeWidth: 设置空心的边框宽度。
   getColor:  得到画笔的颜色
   getAlpha:  得到画笔的Alpha值。

下面是一个简单的示例 来说明这些方法的使用。先来看看运行效果吧。

  1. package eoe.Demo;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Canvas;
  5. import android.graphics.Color;
  6. import android.graphics.Paint;
  7. import android.util.Log;
  8. import android.view.KeyEvent;
  9. import android.view.MotionEvent;
  10. import android.view.View;
  11.  
  12. public class GameView extends View implements Runnable {
  13.  
  14. public final static String TAG = "Example_05_03_GameView";
  15. // 声明Paint对象
  16. private Paint mPaint = null;
  17.  
  18. public GameView(Context context) {
  19. super(context);
  20. // 构建对象
  21. mPaint = new Paint();
  22.  
  23. // 开启线程
  24. new Thread(this).start();
  25. }
  26.  
  27. @Override
  28. protected void onDraw(Canvas canvas) {
  29. super.onDraw(canvas);
  30.  
  31. // 设置Paint为无锯齿
  32. mPaint.setAntiAlias(true);
  33.  
  34. // 设置Paint的颜色
  35. mPaint.setColor(Color.RED);
  36. mPaint.setColor(Color.BLUE);
  37. mPaint.setColor(Color.YELLOW);
  38. mPaint.setColor(Color.GREEN);
  39. // 同样是设置颜色
  40. mPaint.setColor(Color.rgb(, , ));
  41.  
  42. // 提取颜色
  43. Color.red(0xcccccc);
  44. Color.green(0xcccccc);
  45.  
  46. // 设置paint的颜色和Alpha值(a,r,g,b)
  47. mPaint.setAlpha();
  48.  
  49. // 这里可以设置为另外一个paint对象
  50. // mPaint.set(new Paint());
  51. // 设置字体的尺寸
  52. mPaint.setTextSize();
  53.  
  54. // 设置paint的风格为“空心”
  55. // 当然也可以设置为"实心"(Paint.Style.FILL)
  56. mPaint.setStyle(Paint.Style.STROKE);
  57.  
  58. // 设置“空心”的外框的宽度
  59. mPaint.setStrokeWidth();
  60.  
  61. // 得到Paint的一些属性 颜色、Alpha值、外框的宽度、字体尺寸
  62. Log.i("TAG", "paint Color------>" + mPaint.getColor());
  63. Log.i(TAG, "paint Alpha------->" + mPaint.getAlpha());
  64. Log.i("TAG", "paint StrokeWidth--------->" + mPaint.getStrokeWidth());
  65. Log.i("TAG", "paint TextSize----------->" + mPaint.getTextSize());
  66.  
  67. // 绘制一空心个矩形
  68. canvas.drawRect(( - ), , ( - ) / + , + , mPaint);
  69.  
  70. // 设置风格为实心
  71. mPaint.setStyle(Paint.Style.FILL);
  72.  
  73. mPaint.setColor(Color.GREEN);
  74.  
  75. // 绘制绿色实心矩形
  76. canvas.drawRect(, , , + , mPaint);
  77. }
  78.  
  79. // 触笔事件
  80. public boolean onTouchEvent(MotionEvent event) {
  81. return true;
  82. }
  83.  
  84. // 按键按下事件
  85. public boolean onKeyDown(int keyCode, KeyEvent event) {
  86. return true;
  87. }
  88.  
  89. // 按键弹起事件
  90. public boolean onKeyUp(int keyCode, KeyEvent event) {
  91. return true;
  92. }
  93.  
  94. public boolean onKeyMultiple(int KeyCode, int repeatCount, KeyEvent event) {
  95. return true;
  96. }
  97.  
  98. @Override
  99. public void run() {
  100. while (!Thread.currentThread().isInterrupted()) {
  101. try {
  102. Thread.sleep();
  103. } catch (Exception e) {
  104. Thread.currentThread().interrupt();
  105. }
  106. // 更新界面
  107. postInvalidate();
  108. }
  109. }
  110. }
  111.  
  112. package eoe.Demo;
  113.  
  114. import android.app.Activity;
  115. import android.os.Bundle;
  116.  
  117. public class Activity01 extends Activity {
  118. /** Called when the activity is first created. */
  119. private GameView mGameView;
  120.  
  121. @Override
  122. public void onCreate(Bundle savedInstanceState) {
  123. super.onCreate(savedInstanceState);
  124.  
  125. setContentView(R.layout.main);
  126.  
  127. mGameView = new GameView(this);
  128.  
  129. setContentView(mGameView);
  130. }
  131. }

/**

* Paint类介绍

*

* Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,

* 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,

* 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。

*

* 1.图形绘制

* setARGB(int a,int r,int g,int b);

* 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。

*

* setAlpha(int a);

* 设置绘制图形的透明度。

*

* setColor(int color);

* 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。

*

* setAntiAlias(boolean aa);

* 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。

*

* setDither(boolean dither);

* 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰

*

* setFilterBitmap(boolean filter);

* 如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示

* 速度,本设置项依赖于dither和xfermode的设置

*

* setMaskFilter(MaskFilter maskfilter);

* 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等       *

* setColorFilter(ColorFilter colorfilter);

* 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果

*

* setPathEffect(PathEffect effect);

* 设置绘制路径的效果,如点画线等

*

* setShader(Shader shader);

* 设置图像效果,使用Shader可以绘制出各种渐变效果

*

* setShadowLayer(float radius ,float dx,float dy,int color);

* 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色

*

* setStyle(Paint.Style style);

* 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE

*

* setStrokeCap(Paint.Cap cap);

* 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式

* Cap.ROUND,或方形样式Cap.SQUARE

*

* setSrokeJoin(Paint.Join join);

* 设置绘制时各图形的结合方式,如平滑效果等

*

* setStrokeWidth(float width);

* 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度

*

* setXfermode(Xfermode xfermode);

* 设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果

*

* 2.文本绘制

* setFakeBoldText(boolean fakeBoldText);

* 模拟实现粗体文字,设置在小字体上效果会非常差

*

* setSubpixelText(boolean subpixelText);

* 设置该项为true,将有助于文本在LCD屏幕上的显示效果

*

* setTextAlign(Paint.Align align);

* 设置绘制文字的对齐方向

*

* setTextScaleX(float scaleX);

* 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果

*

* setTextSize(float textSize);

* 设置绘制文字的字号大小

*

* setTextSkewX(float skewX);

* 设置斜体文字,skewX为倾斜弧度

*

* setTypeface(Typeface typeface);

* 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等

*

* setUnderlineText(boolean underlineText);

* 设置带有下划线的文字效果

*

* setStrikeThruText(boolean strikeThruText);

* 设置带有删除线的效果

*

*/

Android ---paint类的更多相关文章

  1. Android Paint类介绍以及浮雕和阴影效果的设置

    Paint类介绍 Paint即画笔,在绘制文本和图形用它来设置图形颜色, 样式等绘制信息. 1.图形绘制 setARGB(int a,int r,int g,int b); 设置绘制的颜色,a代表透明 ...

  2. Android Paint类介绍以及浮雕和阴影效果的设置(转)

    转自:https://blog.csdn.net/lpjishu/article/details/45558375 Paint类介绍 Paint即画笔,在绘制文本和图形用它来设置图形颜色, 样式等绘制 ...

  3. Android Paint和Color类绘画实例

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: se ...

  4. android 绘图之Canvas,Paint类

    Canvas,Paint 1.在android 绘图但中经常要用到Canvas和Paint类,Canvas好比是一张画布,上面已经有你想绘制图画的轮廓了,而Paint就好比是画笔,就要给Canvas进 ...

  5. Android Paint和Color类

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: se ...

  6. 【Android】解析Paint类中Xfermode的使用

    Paint类提供了setXfermode(Xfermode xfermode)方法,Xfermode指明了原图像和目标图像的结合方式.谈到Xfermode就不得不谈它的派生类PorterDuffXfe ...

  7. 【转】Android Paint之 setXfermode PorterDuffXfermode 讲解

    [置顶] Android Paint之 setXfermode PorterDuffXfermode 讲解 分类: android动效篇2015-04-07 17:23 978人阅读 评论(8) 收藏 ...

  8. Android Paint的使用以及方法介绍(附源码下载)

    要绘图,首先得调整画笔,待画笔调整好之后,再将图像绘制到画布上,这样才可以显示在手机屏幕上.Android 中的画笔是 Paint类,Paint 中包含了很多方法对其属性进行设置,主要方法如下: se ...

  9. Android Matrix类以及ColorMatri

    引自:http://www.chinabaike.com/t/37396/2014/0624/2556217.html Android Matrix类以及ColorMatrix类详解 最近在系统学习了 ...

随机推荐

  1. webstrom官方的活动模版介绍

    编辑模板变量对话框 文件|设置|生活模板--编辑变量Windows和LinuxWebStorm |偏好|生活模板--编辑变量在OS XCtrl + Alt + S 当你点击对话框打开 编辑变量按钮模板 ...

  2. RPC框架基本原理(一):服务注册

    什么是RPC框架 RPC整个过程涉及四类对象:客户端.客户端代理.服务端和服务端代理.RPC要求客户端和服务端之间约定好调用接口和传输格式(如JSON,Xml等),客户端在调用该接口时,由客户端的代理 ...

  3. MT4 做指标模版

    //+------------------------------------------------------------------+ //| guo.mq4 | //| Copyright 2 ...

  4. Java学习笔记之[ 利用扫描仪Scanner进行数据输入 ]

    /*********数据的输入********//**利用扫描仪Scanner进行数据输入 怎么使用扫描仪Scanner *1.放在类声明之前,引入扫描仪 import java.util.Scann ...

  5. 哈佛大学构建动态网站--第七讲ajax

    Ajax ajax举例: DOM的结构 通过js来修改html页面. Ajax的含义: return false的用途 跨浏览器的ajax 为什么不直接从yahoo获得数据呢? XMLHttpRequ ...

  6. SSH自动断开连接的原因

    方法一: 用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆, 很麻烦. 在网上查了很多资料, 发现原因有多种, 环境变量TMOUT引起,ClientAliveC ...

  7. ACC起来后,usb检测不到

    /proc/scsi/usb-storage 插入u盘,生成文件 /dev/sd* 节点路径 挂载方法 mkdir /media/sda1 mount /dev/sda1 /media/sda1 u盘 ...

  8. MyBatis-配置缓存

    <cache type="org.mybatis.caches.ehcache.LoggingEhcache"> <property name="tim ...

  9. 转 使用SQL从AWR收集数据库性能变化趋势

    使用SQL从AWR收集数据库性能变化趋势 为了对数据库一段时间的性能情况有个全面了解,显然AWR是一个非常有用的工具, 但很多人只会在数据库有性能问题时才会生成问题时段的awr报告去分析.虽然AWR ...

  10. 旋转图css3

    <!doctype html><html> <head>  <meta charset="UTF-8">  <title> ...