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

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

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

* 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的经典示例:http://www.eyesourcecode.com/thread-36147-1-1.html

时间: 2024-10-20 00:20:46

Android Paint的使用以及方法介绍(附源码下载)的相关文章

Android中常见Intent习惯用法-上篇(附源码下载)

Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见博文<Android中Intent概述及使用>.如果对Intent Filter不是特别了解,可以参见博文<Android中Intent对象与Intent Filter过滤匹配过程详解>. 本文着重讲一下Android中一些常见的Intent的习惯用法,比如如何通过Intent发送短信.发送邮件.启动摄像机拍照录视频.设置闹铃.打开WIFI设置界面等等. 限于篇幅,本博文分为上下两篇,这是上篇

Android中AIDL实现进程通信(附源码下载)

AIDL概述 之前的博客<Android中通过Messenger与Service实现进程间双向通信>演示了如何通过Messenger实现与Service进行跨进程通信,即IPC.但用Messenger实现的IPC存在一点不足:Service内部维护着一个Messenger,Messenger内部又维护着一个Hanlder,当多个client向该Service发送Message时,这些Message需要依次进入Hanlder的消息队列中,Hanlder只能处理完一个Message之后,再从消息队

ANDROID自定义视图——仿瀑布布局(附源码)

简介: 在自定义view的时候,其实很简单,只需要知道3步骤: 1.测量--onMeasure():决定View的大小 2.布局--onLayout():决定View在ViewGroup中的位置 3.绘制--onDraw():如何绘制这个View. 第3步的onDraw系统已经封装的很好了,基本不用我们来操心,只需要专注到1,2两个步骤就中好了. 第一步的测量,可以参考:(ANDROID自定义视图--onMeasure,MeasureSpec源码 流程 思路详解) 第二步的布局,可以参考:(AN

android Listview分批加载+自动加载(附源码下载)

直接上代码,代码有注释: public class TestForListviewActivity extends Activity implements OnScrollListener { private ListView mListview = null; private View mFooterView; private PaginationAdapter mAdapter; private Handler handler=new Handler(); private boolean i

Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)

Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载) POSTED ON 2014年6月27日 BY 天边的星星 本文内容: 1.横向ListView的所有实现思路; 2.其中一个最通用的思路HorizontalListView,并基于横向ListView开发一个简单的相册: 3.实现的横向ListView在点击.浏览时item背景会变色,并解决了listview里setSelected造成item的选择状态混乱的问题.

Android高仿QQ消息滑动删除(附源码)

大家都应该使用过QQ吧,他的消息中可以滑动删除功能,我觉得比较有意思,所以模仿写了一个,并且修改了其滑动算法.我先贴几个简单示范图吧 其实主要用的是算法以及对ListView的把控. 一下是适配器的类 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

Qt Quick 图像处理实例之美图秀秀(附源码下载)

在<Qt Quick 之 QML 与 C++ 混合编程详解>一文中我们讲解了 QML 与 C++ 混合编程的方方面面的内容,这次我们通过一个图像处理应用,再来看一下 QML 与 C++ 混合编程的威力,同时也为诸君揭开美图秀秀.魔拍之类的相片美化应用的底层原理. 项目的创建过程请参考<Qt Quick 之 Hello World 图文详解>,项目名称为 imageProcessor ,创建完成后需要添加两个文件: imageProcessor.h 和 imageProcessor.

Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)

“任意多边形地形开挖” 是“地形开挖”的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于“地形开挖”篇后序内容中的填充地形的效果,之前没放出来,是想让小伙伴有个思考的过程,现在放出来,也是提供一种解决方法. 效果图 直接上代码说明方法 1.使用鼠标交互事件,采集需要开挖的范围 注: 这里要特别注意一点,为了下面的计算 ClippingPlane 方便,采集点顺序最好是 逆时针,如果点集的组织是顺时针,需要首先逆序成逆时针,关于如果判断一个点集是否

leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)

前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet 的插件库,非常有用 内容概览 leaflet结合geoserver利用WFS服务实现图层删除源代码demo下载 效果图如下: 本篇主要是在上一篇leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)基础上实现的,leaflet通过调用geoserver发布的地图服务WFS来

cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)

前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内容概览 1.cesium结合geoserver利用WFS服务实现图层编辑功能2.源代码demo下载 效果图如下: 本篇主要是在上一篇cesium结合geoserver利用WFS服务实现图层新增(附源码下载)基础上实现的,cesium通过调用geoserver发布的地图服务WFS来达到图层编辑记录的目