没有合适的资源?快使用搜索试试~ 我知道了~
首页Android画图学习笔记
资源详情
资源评论
资源推荐
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
Android 画图学习
• Android 画图学习总结(一)——类的简介
• Android 画图学习总结(二)——Bitmap
• Android 画图学习总结(三)——Drawable
• Android 画图学习总结(四)——Animation(上)
• Android 画图学习总结(四)——Animation(中)
• Android 画图学习总结(四)——Animation(下)
• Android 画图学习总结(五)——Paint
Android 画图学习总结(一)——类的简介
学习 Android 有一段时间了,看完了 Android SDK 中的大部分文档,但是始终感觉自己还缺少很多,后来发现,Android SDK 中只是
介绍了 Google 自己开发的那一部分如何使用,Android 中引用至 Java 的部分如何使用却没有说明。当然这也不是 Google 的职 责,
但是这对我们 C++程序员来说的确是缺少了很多,在这里我们将对 Google“缺少的部分”并结合 Android SDK 中 Reference 说明来详
细介绍,并不断的补充完善。
首先,如何获取 res 中的资源
数据包 package:android.content.res
主要类:Resources
Android SDK 中的简介:Class for accessing an application’s resources.Class for accessing an application’s resources.
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
This sits on top of the asset manager of the application (accessible through getAssets()) and provides a higher-level
API for getting typed data from the assets.
其主要接口按照功能,划分为以下三部分:
getXXXX()
例如:
int getColor(int id)
Drawable getDrawable(int id)
String getString(int id)
直接获取 res 中存放的资源
InputStream openRawResource(int id) 获取资源的数据流,读取资源数据
void parseBundleExtras(
XmlResourceParser parser, Bundle outBundle)
从 XML 文件中获取数据
Resource 为每种资源提供了相应的接口来获取这种资源,除了可以直接获取资源外,还额外提供了以数据流的方式获取资源,这在以
后的应用程序开发中会经常使用,那么如何获取 Resources 了,如下:Resources r = this.getContext().getResources();
其次,如何获取资源中的画图对象
数据包 package:android.graphics.drawable
主要类:Drawable
Android SDK 中的简介:A Drawable is a general abstraction for “something that can be drawn.” Most often you will deal
with Drawable as the type of resource retrieved for drawing things to the screen; the Drawable class provides a generic
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
API for dealing with an underlying visual resource that may take a variety of forms.
看了以上简介,发现 Drawable 是个 virtual class,具体如何画图,需要具体分析 Drawable 的子类,例如:BitmapDrawable
Android SDK 中的简介:A Drawable that wraps a bitmap and can be tiled, stretched, or aligned. You can create a BitmapDrawable
from a file path, an input stream, through XML inflation, or from a Bitmap object. It can be defined in an XML file with
the <bitmap> element.
其主要接口如下:
BitmapDrawable()
BitmapDrawable(Bitmap bitmap)
BitmapDrawable(String filepath)
BitmapDrawable(InputStream is)
void draw(Canvas canvas)
Draw in its bounds (set via setBounds) respecting
optional effects such as alpha (set via setAlpha) and
color filter (set via setColorFilter).
final Bitmap getBitmap()
final Paint getPaint()
Drawable 是个抽象类,在 BitmapDrawable 中我们就看到位图的具体操作,在仔细看下 BitmapDrawable 的构造函数,我们就会发现与
Resource 中的 openRawResource()接口是相对应的,就可以通过以下方法来获取位图:
Resources r = this.getContext().getResources();
Inputstream is = r.openRawResource(R.drawable.my_background_image);
BitmapDrawable bmpDraw = new BitmapDrawable(is);
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
Bitmap bmp = bmpDraw.getBitmap();
关于 Drawable 深入的学习与理解,请阅读 Android 画图学习总结(三)——Drawable
然后,看几个常用的辅助类
1. Paint
数据包 package:android.graphics
Android SDK 中的简介:The Paint class holds the style and color information about how to draw geometries, text and bitmaps. 主要就是定义:画刷的样
式,画笔的大小/颜色等。
2. Typeface
数据包 package:android.graphics
Android SDK 中的简介:The Typeface class specifies the typeface and intrinsic style of a font. 主要就是定义:字体。
最后,核心类显示资源
数据包 package:android.graphics
主要类:Canvas
Android SDK 中的简介:The Canvas class holds the “draw” calls. To draw something, you need 4 basic components: A Bitmap
to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text,
Bitmap), and a paint (to describe the colors and styles for the drawing).
按照结构的功能,将主要接口分为以下 3 部分:
boolean clipXXXX()
Region 区域操作:
DIFFERENCE
www.moandroid.com
mo-Android 感受 Android 带给我们的新体验
INTERSECT
REPLACE
REVERSE_DIFFERENCE
UNION
XOR
void drawXXXX()
画图函数
void rotate()
void scale()
void skew()
void translate()
画布操作函数
Region 在这里需要特殊说明下:Region 就是一个区域,也就是画布(Canvas)中的有效区域,在无效区域上 draw,对画布没有任何
改变。
总结说明
在写代码前,必须先仔细看下这几个主要的类,在这里我也只是把 SDK 中的介绍稍微总结下,它代替不了你对 SDK 的详细阅读,毕竟
SDK 是最详细的说明文档,在后续篇幅中再深入详细的介绍。
相关文章
• Activity 、Intent 深入解析
• Android 实现联网(一)——package 说明
• Android 画图学习总结(五)——Paint
剩余37页未读,继续阅读
Phoekiz
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2