canvas教程

Android画图学习总结(一)——类的简介

字号+ 作者:H5之家 来源:H5之家 2015-10-08 14:24 我要评论( )

画图学习总结( ——类的 Android 画图学习总结(一)——类的 简介By: 海市蜃楼 | In: Android 开发 学习 Android 有一段时间了,看完了 Android SDK 中的大部

Android画图学习总结(一)——类的简介


画图学习总结( ——类的 Android 画图学习总结(一)——类的 简介
By: 海市蜃楼 | In: 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. 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) InputStream openRawResource(int id) 获取资源的数据流,读取资源数据 void parseBundleExtras( 从 XML 文件中获取数据 XmlResourceParser parser, Bundle outBundle) Resource 为每种资源提供了相应的接口来获取这种资源,除了可以直接获取资 源外,还额外提供了以数据流的方式获取资源,这在以后的应用程序开发中会经 常使用,那么如何获取 Resources 了,如下:Resources r = this.getContext().getResources(); this 直接获取 res 中存放的资源

其次, 其次,如何获取资源中的画图对象
数据包 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 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); 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 INTERSECT REPLACE REVERSE_DIFFERENCE UNION XOR 画图函数 画布操作函数

void void void void void

drawXXXX() rotate() scale() skew() translate()

Region 在这里需要特殊说明下:Region 就是一个区域,也就是画布(Canvas) 中的有效区域,在无效区域上 draw,对画布没有任何改变。

总结说明
在写代码前,必须先仔细看下这几个主要的类,在这里我也只是把 SDK 中的介绍 稍微总结下,它代替不了你对 SDK 的详细阅读,毕竟 SDK 是最详细的说明文档, 在后续篇幅中再深入详细的介绍。


Android画图学习总结(一)——类的简介

第一范文网-第一范文网包含各类年终总结范文,工作总结范文,个人简历范文,述职报告范文,检讨书范文,通过收集整理大量专业知识,职业资料、考试资料,考试复习指导,试题资料等给大家分享;同时提供学习互动交流;更好的帮助大家学习。

点击搜索更多“Android画图学习总结(一)——类的简介”相关的内容
下载《Android画图学习总结(一)——类的简介》

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评