`
韩悠悠
  • 浏览: 842517 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android Canvas类介绍

 
阅读更多

 当我们调整好画笔之后,现在需要绘制到画布上,这就得用Canvas类了。在Android中既然把Canvas当做画布,那么就可以在画布上绘制我们想要的任何东西。除了在画布上绘制之外,还需要设置一些关于画布的属性,比如,画布的颜色、尺寸等。下面来分析AndroidCanvas有哪些功能,Canvas提供了如下一些方法:

       Canvas(): 创建一个空的画布,可以使用setBitmap()方法来设置绘制具体的画布。
       Canvas(Bitmap bitmap):
bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不得为null
       Canvas(GL gl):
在绘制3D效果时使用,与OpenGL相关。
       drawColor:
设置Canvas的背景颜色。
       setBitmap: 
设置具体画布。
       clipRect:
设置显示区域,即设置裁剪区。
       isOpaque:
检测是否支持透明。
       rotate: 
旋转画布
       setViewport: 
设置画布中显示窗口。
       skew: 
设置偏移量。

       上面列举了几个常用的方法。在游戏开发中,我们可能需要对某个精灵执行旋转、缩放和一些其它操作。我们可以通过旋转画布来实现,但是旋转画布时会旋转画布上的所有对象,而我们只是需要旋转其中的一个,这时就需要用到save 方法来锁定需要操作的对象,在操作之后通过 restore 方法来解除锁定,下面我们先来看一下运行效果吧。

我们对左边的矩形执行了旋转操作,而没有旋转右边的矩形,由于我们设置了裁剪区域,因此左边的矩形只能看到一部分,下面让我们来看看代码 这里我只贴出了我们自己的 View GameView Activity类不贴出了 就在里边 new 一个GameView类 然后设置布局 然后main.xml也不贴出来了 因为它根本就没用到。

Java代码 

import android.content.Context;  
import android.graphics.Canvas;  
import android.graphics.Color;  
import android.graphics.Paint;  
import android.graphics.Rect;  
import android.view.KeyEvent;  
import android.view.MotionEvent;  
import android.view.View;  
 
public class GameView extends View implements Runnable {  
/* 声明Paint对象 */  
private Paint mPaint = null;  
 
public GameView(Context context) {  
super(context);  
/* 构建对象 */  
mPaint = new Paint();  
 
/* 开启线程 */  
new Thread(this).start();  
}  
 
public void onDraw(Canvas canvas) {  
super.onDraw(canvas);  
 
/* 设置画布的颜色 */  
canvas.drawColor(Color.BLACK);  
 
/* 设置取消锯齿效果 */  
mPaint.setAntiAlias(true);  
 
/* 设置裁剪区域 */  
canvas.clipRect(10, 10, 280, 260);  
 
/* 线锁定画布 */  
canvas.save();  
/* 旋转画布 */  
canvas.rotate(45.0f);  
 
/* 设置颜色及绘制矩形 */  
mPaint.setColor(Color.RED);  
canvas.drawRect(new Rect(15, 15, 140, 70), mPaint);  
 
/* 解除画布的锁定 */  
canvas.restore();  
 
/* 设置颜色及绘制另一个矩形 */  
mPaint.setColor(Color.GREEN);  
canvas.drawRect(new Rect(150, 75, 260, 120), mPaint);  
}  
 
// 触笔事件  
public boolean onTouchEvent(MotionEvent event) {  
return true;  
}  
 
// 按键按下事件  
public boolean onKeyDown(int keyCode, KeyEvent event) {  
return true;  
}  
 
// 按键弹起事件  
public boolean onKeyUp(int keyCode, KeyEvent event) {  
return false;  
}  
 
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {  
return true;  
}  
 
public void run() {  
while (!Thread.currentThread().isInterrupted()) {  
try {  
Thread.sleep(100);  
} catch (InterruptedException e) {  
Thread.currentThread().interrupt();  
}  
// 使用postInvalidate可以直接在线程中更新界面  
postInvalidate();  
}  
}  
} 

 

 

分享到:
评论

相关推荐

    android Canvas类介绍

    Canvas是Android系统中用于图形绘制的核心类,它在Android的视图系统中扮演着至关重要的角色。通过Canvas,开发者可以实现在屏幕上画出各种复杂的图形、文字、图像等元素。Canvas与Bitmap紧密关联,Bitmap是实际存储...

    android canvas 画曲线图 画三角形(多边形)

    Canvas是Android中的一个类,它提供了在Bitmap上绘制图形的方法。通常,我们会在View的onDraw()方法中实例化Canvas,并调用其drawXXX()系列方法来绘制图形。 1. **画曲线图**: - 创建一个自定义View类,重写...

    Android canvas.save()和canvas.restore()的理解

    在Android图形系统中,`Canvas`是用于在Bitmap或Surface上进行绘图操作的重要类。它提供了各种绘制路径、文本、矩形、圆形以及其他图形的方法。`save()`和`restore()`是`Canvas`中两个非常关键的方法,它们主要用于...

    Android Canvas绘图Demo

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是Android Graphics系统的一部分。Canvas类提供了各种方法,让我们能够绘制线条、形状、文本以及位图等。本篇将深入探讨`Android Canvas绘图`的相关...

    Android 自定义画布canvas 实现绘制和清空画布功能

    首先,我们需要创建一个自定义View类,这个类将继承自Android的View或SurfaceView。在这个自定义View中,我们将重写`onDraw()`方法,这是绘制图形的主要入口。在`onDraw()`方法中,系统会为我们提供一个Canvas对象,...

    Android canvas drawBitmap方法详解及实例

    在Android开发中,Canvas是用于在屏幕上绘制图形和图像的核心组件。`drawBitmap()`方法是Canvas的一个关键函数,用于在Canvas上绘制Bitmap图像。本文将深入解析`drawBitmap()`方法的参数及其用法,并通过实例来说明...

    Android Canvas使用集合

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是Android Framework提供的核心绘图类。Canvas使用集合意味着我们可以利用它来绘制一系列图形、文本、图像等元素,从而实现自定义视图或控件。本篇文章...

    android 使用canvas把矩形图片变成圆角矩形显示

    Canvas是Android系统提供的一个用于绘制2D图形的对象,它可以对Bitmap进行操作,比如画线、画圆、画矩形等。在Android中,我们可以通过重写View的`onDraw()`方法来利用Canvas进行自定义绘图。 要将矩形图片变为圆角...

    Android中Canvas绘图基础详解

    该代码是一个完整的Android工程,详细演示如了如何使用Android中的各种drawXXX方法,以及画笔Paint如何影响绘制的效果。 具体参见博文: http://blog.csdn.net/iispring/article/details/49770651

    Android 画布Canvas之连线动画Demo

    在Android开发中,Canvas是用于在屏幕上绘制2D图形的核心组件。`Canvas`类提供了丰富的绘图方法,让我们能够在Bitmap或者Surface上绘制线条、形状、文本等元素。在这个"Android画布Canvas之连线动画Demo"中,我们将...

    android利用Paint在Canvas上实现竖排写字

    在Android开发中,Canvas是用于在屏幕上绘制图形和文本的核心组件。Paint对象则是用来设置绘制样式,如颜色、字体、线宽等。本教程将详细讲解如何利用Paint和Canvas在Android应用中实现在竖直方向上写字。 1. **...

    android canvas 画图

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是`android.graphics.Canvas`类的实例。本篇文章将深入探讨如何使用Android Canvas进行图形绘制,包括基本概念、常用方法以及实际应用示例。 Canvas...

    android-canvas.rar_ android Canvas_android canvas_android canv

    Bitmap是一个可以存储像素数据的类,我们可以将它看作是一块画布,而Canvas则是我们的画笔,用来在Bitmap上进行绘画操作。例如,我们可以通过`drawRect()`来绘制矩形,通过`drawText()`来添加文字,通过`drawBitmap...

    Android-实现在Kotlin中更方便使用canvas

    在Android开发中,Canvas是用于在屏幕上绘制2D图形的核心组件。Kotlin作为一种现代、简洁的编程语言,已经成为Android开发的首选。本篇文章将深入探讨如何在Kotlin中更有效地利用Canvas进行绘制,以实现丰富的视觉...

    Android canvas 放大 缩小 平移

    总的来说,Android的Canvas和Matrix类为开发者提供了强大的图形绘制能力,通过熟练掌握它们,你可以创建出富有创新和互动性的用户界面。不断地实践和调试,将有助于你更好地理解和运用这些知识。

    android canvas画人

    在Android开发中,Canvas是图形绘制的核心类,它提供了在Bitmap上进行绘制的基本接口。"android canvas画人"这个主题,意味着我们将探讨如何利用Canvas在Android应用中绘制一个人物图像。下面将详细介绍Canvas的使用...

    Android下使用Canvas画图

    - Canvas是Android系统提供的一个类,它提供了在二维画布上进行绘制的方法。 - 通常,我们会在一个Bitmap对象上操作Canvas,因为Bitmap是Android中的像素存储介质,Canvas则负责在Bitmap上进行绘制操作。 - 除了...

    Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

    在实际开发中,通常会创建一个自定义的View类,重写`onDraw()`方法,在其中使用Canvas进行绘制。Paint对象是Canvas的得力助手,它可以设置颜色、样式、抗锯齿、纹理等多种属性,以实现更丰富的绘图效果。 除了基本...

    使用Canvas类绘制android机器人

    在Android开发中,Canvas是图形绘制的核心类,它允许开发者在Bitmap或者其他可绘图对象上进行画图操作。本文将深入探讨如何利用Canvas类来绘制一个Android机器人,从而理解其基本概念、方法以及如何实现复杂的图形...

    android 画笔和Canvas介绍.

    使用文档中介绍了Canvas和Paint的方法介。使用方便,适合开发者

Global site tag (gtag.js) - Google Analytics