今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解android.graphics包中比较重要的绘图类。
一、 android.graphics.Matrix
有关图形的变换、缩放等相关操作常用的方法有:
void reset() // 重置一个matrix对象。
void set(Matrix src) //复制一个源矩阵,和本类的构造方法 Matrix(Matrix src) 一样
boolean isIdentity() //返回这个矩阵是否定义(已经有意义)
void setRotate(float degrees) //指定一个角度以0,0为坐标进行旋转
void setRotate(float degrees, float px, float py) //指定一个角度以px,py为坐标进行旋转
void setScale(float sx, float sy) // 缩放
void setScale(float sx, float sy, float px, float py) //以坐标px,py进行缩放
void setTranslate(float dx, float dy) //平移
void setSkew (float kx, float ky, float px, float py) //以坐标px,py进行倾斜
void setSkew (float kx, float ky) //倾斜
二、android.graphics.NinePatch
NinePatch是Android平台特有的一种非矢量图形自然拉伸处理方法,可以帮助常规的图形在拉伸时不会缩放,实例中Android开发网提示大家对于Toast的显示就是该原理,同时SDK中提供了一个工具名为Draw 9-Patch,有关该工具的使用方法可以参考我们经发布的 Draw 9-Patch使用方法介绍一文。由于该类提供了高质量支持透明的缩放方式,所以图形格式为PNG,文件命名方式为.9.png 的后缀比如android123.9.png。
三、android.graphics.Paint
Paint类我们可以理解为画笔、画刷的属性定义,本类常用的方法如下:
void reset() //重置
void setARGB(int a, int r, int g, int b) 或 void setColor(int color) 均为设置Paint对象的颜色
void setAntiAlias(boolean aa) //是否抗锯齿,需要配合void setFlags (Paint.ANTI_ALIAS_FLAG) 来帮助消除锯齿使其边缘更平滑。
Shader setShader(Shader shader) //设置阴影,Shader类是一个矩阵对象,如果为NULL将清除阴影。
void setStyle(Paint.Style style) //设置样式,一般为 FILL 填充,或者STROKE凹陷效果。
void setTextSize(float textSize) //设置字体大小
void setTextAlign(Paint.Align align) //文本对齐方式
Typeface setTypeface(Typeface typeface) //设置字体,通过Typeface可以加载Android内部的字体,一般为宋体对于中文,部分ROM可以自己添加比如雅黑等等
void setUnderlineText(boolean underlineText) //是否设置下划线,需要撇和void setFlags (Paint.UNDERLINE_TEXT_FLAG) 方法。
四、android.graphics.Rect
Rect我们可以理解为矩形区域,类似的还有Point一个点,Rect类除了表示一个矩形区域位置描述外,android123提示主要可以帮助我们计算图形之间是否碰撞(包含)关系,对于Android游戏开发比较有用,其主要的成员contains包含了三种重载方法,来判断包含关系
boolean contains(int left, int top, int right, int bottom)
boolean contains(int x, int y)
boolean contains(Rect r)
五、android.graphics.Region
Region在Android平台中表示一个区域和Rect不同的是,它表示的是一个不规则的样子,可以是椭圆、多边形等等,而Rect仅仅是矩形。同样Region的boolean contains(int x, int y) 成员可以判断一个点是否在该区域内
六、android.graphics.Typeface
Typeface类是帮助描述一个字体对象,在TextView中通过使用setTypeface方法来制定一个输出文本的字体,其直接构造调用成员create方法可以直接指定一个字体名称和样式,比如
static Typeface create(Typeface family, int style)
static Typeface create(String familyName, int style)
同时使用isBold和isItalic方法可以判断出是否包含粗体或斜体的字型。
final boolean isBold()
final boolean isItalic()
该类的创建方法还有从apk的资源或从一个具体的文件路径,其具体方法为
static Typeface createFromAsset(AssetManager mgr, String path)
static Typeface createFromFile(File path)
static Typeface createFromFile(String path)
有关Android平台的图形、图像我们在前两节中已经整理出来,下次我们将首先讲述下NinePatch的实例应用。
详情参考www.feitech.com
或www.feikeji.com
分享到:
相关推荐
本文的研究工作主要集中在基于 Android 平台的绘图软件开发,通过移植开源绘图软件 MyPaint 的笔刷引擎和开源视频编码库 FFMPEG,实现了 Android 绘图软件的开发,并探讨了一种利用 JNI 机制进行 Android 底层 C/C++...
2. 将开源视频编码库 FFMPEG 成功移植到 Android 平台,利用此库进行用户绘画过程的录制,并生成 MP4 格式的视频。这个过程中涉及到视频编码技术、FFMPEG 库的使用、Android 平台上的视频处理等。 知识点: * 视频...
本文主要讨论基于 Android 平台的绘图软件开发,旨在开发一个具有很好绘图效果的绘画工具应用。该论文的研究工作主要在以下几个方面: 1. 开源绘图软件 MyPaint 的笔刷引擎重写和移植 在本研究中,我们将开源绘图...
本文主要研究基于 Android 移动平台的绘图软件开发,探讨了基于 Android 的绘图软件开发的原理和方法,了解了 Android 绘图软件的开发需要考虑到多种因素,如绘图算法、图形处理、用户界面设计等。
该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651
2. 将开源视频编码库 FFMPEG 成功移植到 Android 平台,利用此库进行用户绘画过程的录制,并生成 MP4 格式的视频。这部分的研究工作主要是将 FFMPEG 库移植到 Android 平台上,使得 Android 绘图软件能够录制用户的...
2. 将开源视频编码库 FFMPEG 成功移植到 Android 平台,利用此库进行用户绘画过程的录制,并生成 MP4 格式的视频。 FFMPEG 是一个开源的视频编码库,可以对视频进行压缩和解压缩。将 FFMPEG 移植到 Android 平台上...
它简化了Android应用程序中图形渲染的复杂性,使得开发者无需深入了解底层的图形绘制API就能创建出美观的数据展示界面。 1. **安装与集成** `ACHARTENGINE`通过JAR文件`achartengine-0.6.0.jar`进行集成。只需将该...
此外,文章还深入探讨了Android底层开发的技术。通过研究JNI(Java Native Interface)机制,作者实现了C/C++代码与Java代码的交互,这对于优化性能和利用硬件资源至关重要。JNI是Android系统中连接Java虚拟机和原生...
在Android平台上,2D图形绘制是一项基础且重要的技术,它允许开发者创建丰富的用户界面和动态效果。本主题将深入探讨Android 2D图形绘制的核心概念、API和实践技巧。 首先,Android提供了两种主要的方式来实现2D...
总的来说,Android NDK为开发者提供了更底层的图形处理能力,能够创建高性能的2D和3D游戏或复杂图形应用。通过结合Java和C++的优势,我们可以实现更加高效、灵活的Android图形编程。而`HelloNDK`这样的示例代码,...
这份"android绘图.pdf"文档详细介绍了Android平台上的图形绘制技术,包括核心的绘图类和资源管理。以下是对文档中提到的关键知识点的深入解析: 1. **View与Drawable** - **View**:在Android中,View是所有UI组件...
一个用c语言设计的开源矢量图形支持库,代码相当成熟 精炼。目前也是android平台graphic部分的系统级别接口。 您猜对了,不错,它就是大名鼎鼎的 cario.喜欢钻研底层技术的程序员,快下了研究吧!
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。本项目“android自定义...通过学习和实践这个项目,可以深入理解Android UI系统的底层工作原理,提升开发能力。
为了更好地实现这些特效,开发者需要熟悉OpenGL ES,这是Android系统底层的图形处理库。虽然Canvas和Matrix可以处理大部分2D绘图需求,但若要实现高性能的3D效果或者复杂的图像处理,就需要借助OpenGL ES。通过...
在Android平台上,手绘操作和绘图功能是开发者们常用的一种技术,用于创建自定义UI、绘制图形或者实现艺术类应用。"android手绘操作demo和经典绘图源码Pretty-Painter-master" 提供了一个很好的学习资源,让我们深入...
**描述:**“android android绘图 安卓界面工具” **标签:**“droiddraw” “android” “android绘图” “安卓界面” **正文:** “droiddraw-r1b21”是一个专门针对Android平台的图形用户界面设计工具,它简化...
在Android平台上,实现...通过深入研究这个源码项目,开发者不仅可以学习到如何在Android上实现水波动画,还能提升对Android系统底层绘图机制、动画框架以及性能优化的理解,这对于提升个人的Android开发技能大有裨益。
这份“安卓Android源码——(Canvas画布).rar”压缩包很可能是包含了一些关于Canvas使用的源代码示例或者解析,帮助我们深入理解Android图形绘制的底层机制。 Canvas是Android中的一个类,它允许开发者通过调用其...