知识点:

Canvas():创建一个空的画布,可以使用setBitmap()方法来设置具体的画布

Canvas(Bitmap bitmap):以bitmap对象创建一个画布,则将内容都绘制在Bitmap上,因此bitmap不能为Null

Canvas(GL gl):在绘制3D效果时使用,与OpenGL相关

drawColor:设置背景颜色

setBitmap:设置画布

clipRect:设置显示区域,即设置裁剪部分

isOpaque:是否支持透明度

rotate:旋转画布

setViewport:设置画布中显示窗口

skew:设置偏移量

代码示例:

package com.example.examples_05_04;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Rect;

import android.view.View;

public class GameView extends View implements Runnable {

private Paint m_paint;//声明一只画笔

public GameView(Context context) {

super(context);

// TODO Auto-generated constructor stub

m_paint=new Paint();//实例化画笔

new Thread(this).start();//开启线程

}

public void run() {

// TODO Auto-generated method stub

while (!Thread.currentThread().isInterrupted()) {

try {

Thread.sleep(100);

} catch (Exception e) {

// TODO: handle exception

Thread.currentThread().interrupt();

}

//更新

postInvalidate();

}

}

public void onDraw(Canvas canvas) {

super.onDraw(canvas);

//设置画笔的颜色

canvas.drawColor(Color.BLACK);

//取消锯齿效果

m_paint.setAntiAlias(true);

//设置裁剪区域

canvas.clipRect(10, 10, 280, 260);

//锁定画布

canvas.save();

//旋转画布

canvas.rotate(45.0f);

//设置颜色和绘制矩形

m_paint.setColor(Color.RED);

canvas.drawRect(new Rect(10, 15, 140, 70), m_paint);

//解除画布锁定

canvas.restore();

//设置颜色绘制另一个矩形

m_paint.setColor(Color.GREEN);

canvas.drawRect(new Rect(150, 75, 260, 120), m_paint);

}

}

package com.example.examples_05_04;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(new GameView(this));

}

}

CanVas类(绘图类)的更多相关文章

  1. JavaScript绘图类 (DIV绘图)

    主要的图形算法抄自一个叫w_jsGraphics.js的类库,第一次看到那个库的时候,感觉那是十分神奇的存在.不过估计现在那个库早就已经找不到了. 这是很早之前的一个DIV绘图类,那时候VML+SVG ...

  2. CClientDC类 CWindowDC类

    CClientDC类 CClientDC类也是CDC类的派生类.它只能在窗口的客户区(即窗口中除了边框.标题栏.菜单栏以及状态栏外的中间部分)中进行绘图,坐标点(0,0)通常指的是客户区的左上角.它的 ...

  3. 初识UML类图--类之间关系

    前言 最近有打算学习一下设计模式,所以就去看了园子里面左潇龙大哥的设计模式文章,看完之后只有一个感觉,我啥时候也能写出来这么牛逼的文章啊,但是我这语文老师死的早的人还是算了,但是设计模式还是要学的,这 ...

  4. [.net 面向对象编程基础] (9) 类和类的实例

    [.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...

  5. java异常处理:建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),

    建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount ...

  6. 19 BasicTaskScheduler0 基本任务调度类基类(一)——Live555源码阅读(一)任务调度相关类

    这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/ol ...

  7. 日期操作类--GregorianCalendar类

    GregorianCalendar--API JavaTM Platform Standard Ed. 6 GregorianCalendar类 Calendar类实现了公历日历,GregorianC ...

  8. Mapper类/Reducer类中的setup方法和cleanup方法以及run方法的介绍

    在hadoop的源码中,基类Mapper类和Reducer类中都是只包含四个方法:setup方法,cleanup方法,run方法,map方法.如下所示: 其方法的调用方式是在run方法中,如下所示: ...

  9. C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;

    ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...

随机推荐

  1. mybatis型材xxxx.xml缺少后果返回类型

    下面是一个mybatis型材xxxx.xml失踪resultMap错误: 严重: Servlet.service() for servlet [SpringMVC] in context with p ...

  2. Tick and Tick------HDOJ杭州电(无法解释,直接看代码)

    Problem Description The three hands of the clock are rotating every second and meeting each other ma ...

  3. Apriori算法Python实现

    Apriori如果数据挖掘算法的头发模式挖掘鼻祖,从60年代开始流行,该算法非常简单朴素的思维.首先挖掘长度1频繁模式,然后k=2 这些频繁模式的长度合并k频繁模式.计算它们的频繁的数目,并确保其充分 ...

  4. 基于PHP的crontab定时任务管理

    BY JENNER · 2014年11月10日· 阅读次数:6 linux的crontab一直是server运维.业务开展的利器.但当定时任务增多时,管理和迁移都变得非常麻烦,并且easy出问题.以下 ...

  5. IEnumerable,IQueryable的区别

    IEnumerable,IQueryable之前世今生 IEnumerable<T>在.Net2.0中我们已经很熟悉了.你想要利用Foreach迭代吗?实现IEnumerable<T ...

  6. POJ 2081 Recaman&#39;s Sequence(水的问题)

    [简要题意]:这个主题是很短的叙述性说明.挺easy. 不重复. [分析]:只需要加一个判断这个数是否可以是一个数组,这个数组的范围. // 3388K 0Ms #include<iostrea ...

  7. SpringMVC1

    itRed You are never too old to set another goal or to dream a new dream. SpringMVC一路总结(一) SpringMVC听 ...

  8. Zepto Code Rush 2014——Dungeons and Candies

    题目链接 题意: k个点,每一个点都是一个n * m的char型矩阵.对与每一个点,权值为n * m或者找到一个之前的点,取两个矩阵相应位置不同的字符个数乘以w.找到一个序列,使得全部点的权值和最小 ...

  9. STL该反应堆运行

    首先来看全然二叉树的定义: 若设二叉树的深度为h,除第 h 层外,其他各层 (1-h-1) 的结点数都达到最大个数,第 h 层全部的结点都连续集中在最左边,这就是全然二叉树.而将一维数组视为全然二叉树 ...

  10. SVN & Git (一)

    (一)SVN的使用.CornerStone图形化管理工具! SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. ...