`
kevin2562
  • 浏览: 118291 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android Canvas用法

阅读更多
Canvas用法

做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。
不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,
用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
@Override
public void onDraw(Canvas canvas) {
// 首先定义一个paint
Paint paint = new Paint();

// 绘制矩形区域-实心矩形
// 设置颜色
paint.setColor(Color.WHITE);
// 设置样式-填充
paint.setStyle(Style.FILL);
// 绘制一个矩形
canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);

// 绘空心矩形
// 设置颜色
paint.setColor(Color.RED);
// 设置样式-空心矩形
paint.setStyle(Style.STROKE);
// 绘制一个矩形
canvas.drawRect(new Rect(10, 10, 50, 20), paint);

// 绘文字
// 设置颜色
paint.setColor(Color.GREEN);
// 绘文字
canvas.drawText(str, 30, 30, paint);

// 绘图
// 从资源文件中生成位图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
// 绘图
canvas.drawBitmap(bitmap, 10, 10, paint);
}


以上需要注意的有三点:
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。
分享到:
评论
4 楼 kevin2562 2011-10-08  
kevin2562 写道
shaobin0604 写道
文字的 anchor 在不在左上角

在左上角

试试看不就知道了么?
3 楼 c1007857613 2011-08-24  
Android中的Rect和java中的可能稍有区别,后两个参数是右下角的坐标........不是吧,后两个参数就是高度和宽度好不好。还有你知道这么绘制曲线不,怎么只有绘制直线的drawLine啊,求解,求考证
2 楼 kevin2562 2011-05-27  
shaobin0604 写道
文字的 anchor 在不在左上角

在左上角
1 楼 shaobin0604 2010-08-20  
文字的 anchor 在不在左上角

相关推荐

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

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

    Android Canvas使用集合

    本篇文章将深入探讨Android Canvas的使用方法以及与之相关的集合操作。 Canvas是Android中的一个类,它提供了各种绘制方法,如drawRect(), drawCircle(), drawBitmap()等,用于在SurfaceView、ImageView等组件上...

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

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

    Android canvas drawBitmap方法详解及实例

    本文将深入解析`drawBitmap()`方法的参数及其用法,并通过实例来说明如何使用该方法。 `drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)`是`drawBitmap()`方法的一个重载版本,其参数含义如下: 1. *...

    android Canvas类介绍

    在Android开发中,Canvas的常用方法包括: 1. `drawRect(float left, float top, float right, float bottom, Paint paint)`: 绘制矩形。 2. `drawCircle(float cx, float cy, float radius, Paint paint)`: 绘制...

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

    在Android开发中,自定义画布Canvas是实现图形绘制的核心工具。...总之,自定义画布Canvas是Android图形界面开发中不可或缺的一部分,通过熟练掌握其用法,可以实现各种复杂而富有创意的视觉效果。

    Android Canvas绘图Demo

    本篇将深入探讨`Android Canvas绘图`的相关知识点,包括基本概念、常用方法以及实际应用。 一、Canvas基础 1. `Canvas`对象:在Android中,`Canvas`是绘画的基础,它就像一块画布,我们可以在上面绘制各种元素。...

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

    在Android中,我们可以通过重写View的`onDraw()`方法来利用Canvas进行自定义绘图。 要将矩形图片变为圆角矩形,我们主要用到Canvas的`drawRoundRect()`方法。这个方法接受一组参数,其中包含矩形的坐标、半径以及...

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

    在Android中,通常通过`onDraw()`方法在View的生命周期中调用Canvas,如在自定义View中: ```kotlin class CustomView(context: Context, attrs: AttributeSet?) : View(context, attrs) { override fun onDraw...

    Android中Canvas绘图基础详解

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

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

    - 在Android中,通常我们会在View的onDraw()方法中创建Canvas对象,并调用canvas.drawSomething()系列方法进行绘制。 - Paint可以通过new Paint()初始化,然后使用各种set方法设置属性,如`paint.setColor()`、`...

    Android 画布Canvas之连线动画Demo

    1. Android Canvas的基本绘图方法,尤其是`drawLine()`。 2. 使用Handler和Runnable实现定时任务,进行动画更新。 3. 控制动画速度、线条颜色和线宽的方法。 4. 自定义View的绘制逻辑。 5. 可能涉及的进阶技巧,如...

    android-canvas.rar_ android Canvas_android canvas_android canv

    在Android应用开发中,Canvas通常与Bitmap配合使用。Bitmap是一个可以存储像素数据的类,我们可以将它看作是一块画布,而Canvas则是我们的画笔,用来在Bitmap上进行绘画操作。例如,我们可以通过`drawRect()`来绘制...

    android canvas 画图

    本篇文章将深入探讨如何使用Android Canvas进行图形绘制,包括基本概念、常用方法以及实际应用示例。 Canvas提供了丰富的绘图API,使得开发者可以在Bitmap或者View上绘制各种形状,如线条、圆形、矩形、弧线等。...

    Android下使用Canvas画图

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

    Android canvas 放大 缩小 平移

    接下来,我们将深入探讨如何在Android中使用Canvas实现这些效果。 首先,了解Canvas的基本概念。Canvas是Android的绘画画布,你可以将其想象为一个空白的画板,通过调用其方法来绘制线条、形状、图片等。在自定义...

    android canvas画人

    总之,使用Android的Canvas进行自定义绘制是一项综合性的任务,涉及到图形学、设计和编程技巧。通过熟练掌握Canvas的各种方法和技巧,开发者可以创造出丰富多样的交互式图形界面,包括绘制出栩栩如生的人物形象。

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

    1. **点(Point)**:使用`canvas.drawPoint()`方法可以在指定位置绘制一个点。你需要提供X和Y坐标,以及可选的颜色。 2. **直线(Line)**:使用`canvas.drawLine()`方法可以绘制一条线,参数包括起始点的X和Y坐标,...

    Android Canvas画布使用Demo源码.rar

    下面我们将详细探讨Android Canvas的使用方法以及相关知识点。 1. **Canvas的基本概念** - Canvas是Android中的一个类,它提供了一个画布,开发者可以在上面执行各种绘图操作,如绘制线条、矩形、圆形、路径、文本...

    android 中canvas的save和resotre用法

    通过掌握`save()`和`restore()`的使用,开发者可以更灵活地控制Android Canvas上的图形绘制,实现更丰富的视觉效果和交互。在实际项目中,这两个方法经常被用来处理动画、视图重绘以及自定义View的复杂逻辑。

Global site tag (gtag.js) - Google Analytics