Canvas类:
Canvas类代表画布,通过该类使用的方法,可以绘制各种图形(如矩形、圆形、线形)通常情况下,在Android中绘制图形需要先创建继承自View的类的视图,并且在该类中重写其OnDraw(Canvascanvas)方法,然后在绘制的Activity中添加该视图。下面将通过一个具体的实例说明如何用于绘图的画布。
PublicclassDrawviewextendsView{
PublicDrawView(Contextcontext,AttributeSetattrs){
Super(context,attr);
}
PubicvoidonDraw(Canvascanvas){
Super.onDraw(canvas);
}
}
在重写的onDraw方法中,可以编写绘图代码,参数canvas就是要进行绘图的画布
Bitmap类代表位图,是android系统中图像处理的一个重要的类,使用该类,不仅可以获取图像文件信息进行图像切换旋转缩放操作,而且还可以指定格式保存文件。对于这些操作都可以用Bitmap提供的方法实现
android:绘图
View:组件,理解为画布
Drawable:所有可见对象的描述,理解为:素材类
Bitmap:图片类
Canvas:画笔
Paint:画笔样式与颜色、特效的集合
对于AndroidUI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的有关OpenGLES相关的可能将放到以后再透露。本次主要涉及以下四个包的相关内容:
android.content.res资源类
android.graphics底层图形类
android.view显示类
android.widget控件类
一、android.content.res.Resources
对于Android平台资源类android.content.res.Resources可能很多网友比较陌生,一起来看看SDK上是怎么介绍的吧,Containsclassesforaccessingapplicationresources,suchasrawassetfiles,colors,drawables,mediaorotherotherfilesinthepackage,plusimportantdeviceconfigurationdetails(orientation,inputtypes,etc.)thataffecthowtheapplicationmaybehave.平时用到的二进制源文件raw、颜色colors、图形drawables和多媒体文件media的相关资源均通过该类来管理。
intgetColor(intid)对应res/values/colors.xml
DrawablegetDrawable(intid)对应res/drawable/
XmlResourceParsergetLayout(intid)对应res/layout/
StringgetString(intid)和CharSequencegetText(intid)对应res/values/strings.xml
InputStreamopenRawResource(intid)对应res/raw/
voidparseBundleExtra(StringtagName,AttributeSetattrs,BundleoutBundle)对应res/xml/
String[]getStringArray(intid)res/values/arrays.xml
floatgetDimension(intid)res/values/dimens.xml
二、android.graphics.Bitmap
作为位图操作类,Bitmap提供了很多实用的方法,常用的我们总结如下:
booleancompress(Bitmap.CompressFormatformat,intquality,OutputStreamstream)压缩一个Bitmap对象根据相关的编码、画质保存到一个OutputStream中。其中第一个压缩格式目前有JPG和PNG
voidcopyPixelsFromBuffer(Buffersrc)从一个Buffer缓冲区复制位图像素
voidcopyPixelsToBuffer(Bufferdst)将当前位图像素内容复制到一个Buffer缓冲区
我们看到创建位图对象createBitmap包含了6种方法在目前的Android2.1SDK中,当然他们使用的是APILevel均为1,所以说从Android1.0SDK开始就支持了,所以大家可以放心使用。
staticBitmapcreateBitmap(Bitmapsrc)
staticBitmapcreateBitmap(int[]colors,intwidth,intheight,Bitmap.Configconfig)
离开之后,我想你不要忘记一件事:不要忘记想念我。