`
javayestome
  • 浏览: 1011079 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android UI开发专题(二) 之绘图基础

阅读更多

今天我们继续介绍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的实例应用。

分享到:
评论

相关推荐

    06_QLibrary.zip

    06_QLibrary.zip

    毕业设计: 基于Densenet + CTC技术的文字检测识别的技术研究

    本毕设课题是属于计算机视觉下的目标检测与识别,对象为自然场景下的各种文本信息,通俗的说就是检测识别图片中的文本信息。由于文本的特殊性,本毕设将整个提取信息的过程可以分为检测、识别两个部分。 论文对用到的相关技术概念有一定的介绍分析,如机器学习,深度学习,以及各种的网络模型及其工作原理过程。 检测部分采用水平检测文本线方式进行文本检测,主要参考了乔宇老师团队的 CTPN 方法,并在正文部分从模型的制作到神经网络的设计实现对系统进行了较为详细的分析介绍。 识别部分则采用的是 Densenet + CTC,对于印刷体的文字有较好的识别。

    毕业设计 基于javaweb的在线答题平台

    毕业设计 基于javaweb的在线答题平台

    numpy安装 python get-pip.py

    numpy安装 numpy安装 python get-pip.py

    基于用户、物品的协同过滤算法.zip

    协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前喜欢的物品相似的物品。 基于用户的协同过滤算法:给用户推荐与他兴趣相似的用户喜欢的物品。 协同过滤算法的优点包括: 无需事先对商品或用户进行分类或标注,适用于各种类型的数据。 算法简单易懂,容易实现和部署。 推荐结果准确性较高,能够为用户提供个性化的推荐服务。 然而,协同过滤算法也存在一些缺点: 对数据量和数据质量要求较高,需要大量的历史数据和较高的数据质量。 容易受到“冷启动”问题的影响,即对新用户或新商品的推荐效果较差。 存在“同质化”问题,即推荐结果容易出现重复或相似的情况。 协同过滤算法在多个场景中有广泛的应用,如电商推荐系统、社交网络推荐和视频推荐系统等。在这些场景中,协同过滤算法可以根据用户的历史行为数据,推荐与用户兴趣相似的商品、用户或内容,从而提高用户的购买转化率、活跃度和社交体验。 未来,协同过滤算法的发展方向可能是结合其他推荐算法形成混合推荐系统,以充分发挥各算法的优势。

    strcmp函数应用.zip

    strcmp函数应用.zip

    2.py

    2.py

    解读MIT-BIH数据的MATLAB代码.zip

    解读MIT-BIH数据的MATLAB代码.zip

    医保基本药品耗材目录查询2.0.exe

    可以查询各种医保内的药物,包括规格厂家和详细的相关资料,种类很齐全,方便大家查询,和了解药物价格等方面。

    使用Numpy将类保存到npz文件并读取文件,然后绘制图形的Python代码示例

    npz文件 代码中,我们首先定义了一个数据类Data,其中包含x和y两个成员变量。 然后,我们创建了数据对象,并将其保存到文件中。我们使用np.savez函数将数据字典保存到文件中,其中字典的键为变量名,值为对应的数据数组。 接下来,我们使用load_from_file方法从文件中加载数据,并创建一个新的数据对象。 最后,我们使用Matplotlib库绘制出新数据对象的图形。通过plot函数,我们将x和y作为横纵轴数据进行绘制。然后,我们添加坐标轴标签、标题,并显示网格线。 运行代码后,将显示一个绘制出的数据图形。 数据保存: def save_to_file(self, filename): data_dict = { 'x': self.x, 'y': self.y } np.savez(filename, **data_dict) # 将数据保存到文件 filename = 'data.npz' data.save_to_file(filename)

    matlab矩阵的生成.zip

    matlab矩阵的生成.zip

    模拟器非常好用,赶紧来下载

    模拟器非常好用,赶紧来下载

    常用进制转换器16进制10进制2进制转换计算器..exe

    大家好呀!今天来介绍一款常用进制转换器,也就是 16 进制、10 进制、2 进制转换计算器。有了它,你可以轻松实现不同进制之间的快速转换。无论是将 16 进制转换为 10 进制或 2 进制,还是从其他进制转换过来,它都能准确而高效地完成。无论是在计算机编程、数字电路等领域,还是日常对进制转换有需求的时候,它都能成为你的得力小助手,让进制转换不再麻烦,快来试试吧!

    GIMP完整指南GIMP完整指南

    GIMP完整指南

    IMG_20240519_155556.jpg

    IMG_20240519_155556.jpg

    java spring boot集成minio文件上传下载

    资源内容为java操作minio文件上传下载,也涉及到加密操作,主要是minio的SSE-C模式,具体内容在Sprintboot01ApplicationTests.MinioTest()中。 包含以下内容: //1.测试数据上传 testUploadString(); //2.测试数据下载 testDownLoadString(); //3..测试数据加密上传 testUploadStringEncryt(); //4.测试加密数据下载 testDownLoadStringEncryt(); //5.测试文件上传 testUploadFile(); //6.测试文件加密上传 testUploadFileEnctry(); //7.测试文件加密下载 testDownLoadFileEncryt();

    web期末大作业基于HTML+CSS实现的品优购购物网站静态网页源码(仿京东-期末大作业).rar

    品优购购物网站静态网页源码是基于HTML+CSS实现的一款仿京东风格的购物网站项目。该项目旨在帮助计算机相关专业的在校学生、老师以及企业员工更好地学习和掌握HTML+CSS技术,提升网页设计与制作的实践能力。 该源码经过精心设计和编码,实现了良好的页面布局和视觉效果,同时保证了代码的易读性和可维护性。通过下载和使用该源码,用户可以快速搭建起一个具有完整功能的购物网站静态页面,为后续动态交互功能的实现打下坚实基础。 此外,该源码还提供了详细的注释说明,方便初学者快速上手,理解并掌握网页制作的关键技术。对于有一定基础的学员来说,更可以在源码的基础上进行二次开发,实现更多个性化功能,满足实际项目需求。 经过运行测试,该源码表现稳定,无兼容性问题。无论是作为课程设计的参考资源,还是毕业设计的实践项目,品优购购物网站静态网页源码都将为您提供一个高质量的起点,助您在学习和实践中取得优异成绩。放心下载使用,开启您的网页制作之旅吧!

    【一键平仓ea 】一键平仓ea ,一键全部平仓mt5面板ea

    包含一键全平 一键平盈利单 一键平亏损但 只平多单 只平空单 盈利单平二分之一仓位 盈利单平三分之一 亏损单平二分之一仓位 亏损单平三分之一 适用于 mt5 平台

    JAVA文件传输(lw+源代码).zip

    FTP(File Transfer Protocol)是文件传输协议的简称。 FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 目前FTP服务器软件都为国外作品,例如Server_U、IIS,国内成熟的FTP服务器软件很少,有一些如(Crob FTP Server),但从功能上看来远不能和那些流行的服务器软件媲美。

    Java项目毕业设计-航空订票系统(前台订票+后台票务管理)基于SSM开发+数据库(详细源码)-期末大作业.rar

    本项目为Java项目毕业设计-航空订票系统,基于SSM框架开发,结合前台订票与后台票务管理功能,满足现代航空票务需求。系统采用三层架构,包括表现层、业务逻辑层和数据访问层,确保高效稳定运行。数据库设计考虑数据完整性和安全性,采用MySQL数据库存储关键数据。 经过运行测试,系统性能良好,满足设计要求。界面简洁直观,用户友好;后台管理功能强大,方便管理员管理。系统安全性高,有效防止SQL注入、跨站脚本等攻击。 本资源适合计算机相关专业学生和从业者下载学习。对初学者,可快速掌握SSM框架和航空订票系统开发流程;对有一定基础者,可作为参考,拓宽思路,提升技能。此外,也适用于毕业设计、课程设计、项目立项等场景,展现项目基本框架和功能。 请放心下载使用,相信能助您顺利完成学习和项目任务。期待在您的努力下,系统不断完善,功能更加丰富,为航空事业发展贡献力量。

Global site tag (gtag.js) - Google Analytics