引自: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值。

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

package eoe.Demo;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View; public class GameView extends View implements Runnable { public final static String TAG = "Example_05_03_GameView";
// 声明Paint对象
private Paint mPaint = null; public GameView(Context context) {
super(context);
// 构建对象
mPaint = new Paint(); // 开启线程
new Thread(this).start();
} @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // 设置Paint为无锯齿
mPaint.setAntiAlias(true); // 设置Paint的颜色
mPaint.setColor(Color.RED);
mPaint.setColor(Color.BLUE);
mPaint.setColor(Color.YELLOW);
mPaint.setColor(Color.GREEN);
// 同样是设置颜色
mPaint.setColor(Color.rgb(, , )); // 提取颜色
Color.red(0xcccccc);
Color.green(0xcccccc); // 设置paint的颜色和Alpha值(a,r,g,b)
mPaint.setAlpha(); // 这里可以设置为另外一个paint对象
// mPaint.set(new Paint());
// 设置字体的尺寸
mPaint.setTextSize(); // 设置paint的风格为“空心”
// 当然也可以设置为"实心"(Paint.Style.FILL)
mPaint.setStyle(Paint.Style.STROKE); // 设置“空心”的外框的宽度
mPaint.setStrokeWidth(); // 得到Paint的一些属性 颜色、Alpha值、外框的宽度、字体尺寸
Log.i("TAG", "paint Color------>" + mPaint.getColor());
Log.i(TAG, "paint Alpha------->" + mPaint.getAlpha());
Log.i("TAG", "paint StrokeWidth--------->" + mPaint.getStrokeWidth());
Log.i("TAG", "paint TextSize----------->" + mPaint.getTextSize()); // 绘制一空心个矩形
canvas.drawRect(( - ), , ( - ) / + , + , mPaint); // 设置风格为实心
mPaint.setStyle(Paint.Style.FILL); mPaint.setColor(Color.GREEN); // 绘制绿色实心矩形
canvas.drawRect(, , , + , mPaint);
} // 触笔事件
public boolean onTouchEvent(MotionEvent event) {
return true;
} // 按键按下事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
} // 按键弹起事件
public boolean onKeyUp(int keyCode, KeyEvent event) {
return true;
} public boolean onKeyMultiple(int KeyCode, int repeatCount, KeyEvent event) {
return true;
} @Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep();
} catch (Exception e) {
Thread.currentThread().interrupt();
}
// 更新界面
postInvalidate();
}
}
} package eoe.Demo; import android.app.Activity;
import android.os.Bundle; public class Activity01 extends Activity {
/** Called when the activity is first created. */
private GameView mGameView; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); mGameView = new GameView(this); setContentView(mGameView);
}
}

/**

* 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. 转:应用JMeter测试solr请求

    使用JMeter测试solr请求 一.安装JMeter 在官网http://jmeter.apache.org/download_jmeter.cgi下载JMeter 直接解压JMeter安装包 Li ...

  2. Javascript和HTML dom

    今天在看DOM那一章的时候突然想到一个问题,众所周知的js的数据类型有两种:原始类型和对象类型.其中原始类型又包括以下几种类型:数字型.字符串型.布尔值.null和undefined.其中对象类型包括 ...

  3. 第十四节,基本数据类型,列表list

    创建列表  #!/usr/bin/env python # -*- coding:utf-8 -*- a = ['alex', 'seven', 'eric'] #或 a = list(['alex' ...

  4. linux和win7设置静态ip

    ubuntu 静态ip设置 检查网络ifconfig (不是ipconfig)必须有2个地址一个回送地址:127.0.0.1一个实际地址:192.168.3.58 sudo vim /etc/netw ...

  5. org.hibernate.exception.JDBCConnectionException: could not execute query

    最近在做一个项目,测试的时候是没有问题的,但是放到服务器上以后,第二天就会出现下面的异常.重启Tomcat服务器后就正常了,但是下一天还是会出现同样的异常..... 我就查了一些资料最终把问题给解决了 ...

  6. 一个小知识点强引用__strong 弱引用__weak

    __weak的类型的指针是不会影响对象的释放 当系统释放后 会自动的指向nil: __Strong 至少有一个__Strong类型的指针是 对象不会释放  

  7. 19个心得 明明白白说Linux下的负载均衡

    [51CTO.com独家特稿]前言:作为一名Linux/unix系统工程师,这几年一直在涉及到对外项目,经手过许多小中型网站的架构,F5.LVS及Nginx接触的都比较多,我想一种比较通俗易懂的语气跟 ...

  8. 其他信息: Error creating context 'spring.root': 未能加载文件或程序集“EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项

    详细错误情况: “System.Configuration.ConfigurationErrorsException”类型的异常在 Spring.Core.dll 中发生,但未在用户代码中进行处理 其 ...

  9. oracle数据库的数据类型

    一.字符类型 (1)固定长度的字符串 CHAR(字节长度是1~2000之间) CHAR(8)可以存储4个双字节的字符,8个单字节的字符,不足8字节剩余的部分用空格占据 (2)可变长度字符串 VARCH ...

  10. 【转】Git代码行统计命令集

    http://blog.csdn.NET/dwarven/article/details/46550117 http://blog.csdn.net/hshl1214/article/details/ ...