`
xfjt297857539
  • 浏览: 152243 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android Canvas类介绍(zhuan)

 
阅读更多
  当我们调整好画笔之后,现在需要绘制到画布上,这就得用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也不贴出来了 因为它根本就没用到。

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 实现绘制和清空画布功能

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

    Android Canvas绘图Demo

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

    Android Canvas是Android系统中用于图形绘制的核心组件,它在Android应用开发中扮演着至关重要的角色。Canvas提供了在屏幕或者Bitmap上进行2D图形绘制的能力,包括线条、形状、文本、图像等元素。开发者可以通过调用...

    android canvas 画图

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

    Android canvas 放大 缩小 平移

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

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

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

    android canvas画人

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

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

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

    Android下使用Canvas画图

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

    使用Canvas类绘制android机器人

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

    android-canvas-donut-chart.7z

    在Android开发中,Canvas是用于绘制2D图形的重要工具,它是Android系统提供的一个低级绘图接口。"android-canvas-donut-chart.7z"这个压缩包文件很可能包含了一个使用Canvas来实现甜甜圈图(Donut Chart)的示例项目...

Global site tag (gtag.js) - Google Analytics