//Context介绍
Context,中文直译为“上下文”
1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现。
3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作。
在android中context可以作很多操作,但是最主要的功能是加载和访问资源。
//程序中的@Override是什么意思?
@Override是Java5的元数据,自动加上去的一个标志,
告诉你说下面这个方法是从父类/接口 继承过来的,
需要你重写一次,这样就可以方便你阅读,也不怕会忘记
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处:
1>可以当注释用,方便阅读
2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。
比如你如果没写@Override而你下面的方法名又写错了,
这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法)
使用该标记是为了增强程序在编译时候的检查,
如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错误。
//Andriod中绘(画)图----Canvas的使用详解
主要是Canvas类(android.graphics.Canvas)。
Canvas类就是表示一块画布,你可以在上面画你想画的东西。
当然,你还可以设置画布的属性,如画布的颜色/尺寸等。
Canvas提供了如下一些方法:
Canvas():创建一个空的画布,可以使用setBitmap()方法来设置绘制的具体画布;
Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容都绘制在bitmap上,bitmap不得为null;
Canvas(GL gl):在绘制3D效果时使用,与OpenGL有关;
drawColor:设置画布的背景色;
setBitmap:设置具体的画布;
clipRect:设置显示区域,即设置裁剪区;
isOpaque:检测是否支持透明;
rotate:旋转画布;
canvas.drawRect(RectF,Paint)方法用于画矩形,
第一个参数为图形显示区域,第二个参数为画笔,设置好图形显示区域Rect和画笔Paint后,即可画图;
canvas.drawRoundRect(RectF, float, float, Paint) 方法用于画圆角矩形,
第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。
canvas.drawLine(startX, startY, stopX, stopY, paint):
前四个参数的类型均为float,最后一个参数类型为Paint。
表示用画笔paint从点(startX,startY)到点(stopX,stopY)画一条直线;
canvas.drawArc(oval, startAngle, sweepAngle, useCenter, paint):
第一个参数oval为RectF类型,即圆弧显示区域,startAngle和sweepAngle均为float类型,
分别表示圆弧起始角度和圆弧度数,3点钟方向为0度,useCenter设置是否显示圆心,boolean类型,paint为画笔;
canvas.drawCircle(float,float, float, Paint)方法用于画圆,
前两个参数代表圆心坐标,第三个参数为圆半径,第四个参数是画笔;
1 Bitmap,可以来自资源/文件,也可以在程序中创建,
实际上的功能相当于图片的存储空间;
2 Canvas,紧密与Bitmap联系,把Bitmap比喻内容的话,
那么Canvas就是提供了众多方法操作Bitamp的平台;
3 Paint,与Canvas紧密联系,是"画板"上的笔刷工具,
也用于设置View控件上的样式;
4 Drawable,如果说前三者是看不见地在内存中画图(虚拟的),
那么Drawable就是把前三者绘图结果表现出来的接口(真实的)。
Drawable多个子类,例如:位图(BitmapDrawable)、图形(ShapeDrawable)、图层(LayerDrawable)等。
我们打个简单的比方吧:
Paint 就是画笔
Bitmap 就是画布
Canvas 就是画家
于是,画家可以通过画笔可以在画布上进行任何的画画。
在绘制矩形时我们一般都会这样写:
startX 起始X坐标
stopX 结束X坐标
startY起始Y坐标
stopY 结束Y坐标
然后直接调用canvas.drawRect(startX, startY, stopX, stopY, paint);
进行绘制一般情况下绘制时没有问题的。