您的位置:首页 > 移动开发 > Android开发

android初学之Context、@Override、Canvas简介

2015-10-10 14:07 447 查看
这些是之前做的一些零零碎碎的笔记,暂且堆在这里,以后回头看看还是挺有趣的。

2015/6/21

//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);

进行绘制一般情况下绘制时没有问题的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: