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

绘图Canvas

阅读更多
做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas(new Canvas(BitMap bitMap)),进行绘制,也可以自定义一个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,还是我们有理解到坐标点的意义。

注:本文转自http://zxandroid.iteye.com/blog/375126
分享到:
评论

相关推荐

    html5绘图Canvas线条动画特效

    在这个“html5绘图Canvas线条动画特效”的主题中,我们将深入探讨Canvas API,了解如何利用它来创建引人入胜的线条动画。 首先,Canvas是一个基于矢量图形的画布元素,通过JavaScript代码进行控制。它提供了丰富的...

    安卓绘图 canvas 绘图 平移缩放

    在Android平台上,Canvas是用于图形绘制的核心类,它提供了丰富的绘图操作,如画线、矩形、圆形、文本以及图像等。本示例重点探讨的是如何使用Canvas进行图形的平移和缩放操作,这对于创建动态效果或者自定义视图...

    Android Canvas使用集合

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

    原生JS使用Canvas实现拖拽式绘图功能

    原生JS使用Canvas实现拖拽式绘图功能的知识点涵盖了Canvas API的基础应用、面向对象编程思想在Canvas绘图中的运用以及鼠标事件的处理,以下是详细解析: 1. Canvas API基础知识 - Canvas元素:HTML5新增的Canvas...

    Android编程之绘图canvas基本用法示例

    本文实例讲述了Android编程之绘图canvas基本用法。分享给大家供大家参考,具体如下: MainActivity的代码如下: package example.com.myapplication; import android.os.Bundle; import android.app.Activity; ...

    HTML5 CANVAS 绘图实现

    HTML5 CANVAS 绘图 JS 只需要简单的一行代码即可渲染整个绘图版 主要用于实现手写签名

    qt qml canvas 实时绘图

    在本文中,我们将深入探讨如何使用Qt5 QML的Canvas模块进行实时绘图,特别是创建动态的折线图。QML是Qt框架的一部分,它提供了一种声明式语言,用于构建用户界面,而Canvas组件则允许我们在界面上进行低级图形绘制。...

    canvas绘图 制作的小案例

    canvas绘图 制作的小案例 canvas绘图 制作的小案例 canvas绘图 制作的小案例 canvas绘图 制作的小案例

    QMLcanvas画板鼠标画图(有预览路径)

    当用户松开鼠标时,实际的绘图Canvas将使用之前记录的路径进行绘制,同时清空预览Canvas,等待下一次绘画。 在QML中,我们可以利用信号和槽机制来处理这些事件。例如,我们可以为MouseArea组件设置onPressed、on...

    绘图基础Canvas+Path+Paint

    在Canvas上绘制图形时,Paint作为参数传递给Canvas的绘图方法,从而控制图形的视觉效果。 在CanvasDEMO2这个示例中,我们可以预见到可能的代码结构。首先,会在一个自定义的View类中重写onDraw()方法,然后创建一个...

    canvas绘图任意矩形、多边形

    <title>canvas绘图 canvas { border: 1px solid black; } <canvas id="myCanvas" width="800" height="600"></canvas> <script src="index.js"></script> ``` 接着,在`index.js`中,我们初始化...

    Android eclipse画板绘制不同颜色图形,有助于初学Android的童鞋了解Android绘图机制

    本文将深入探讨如何使用Eclipse的画板(Canvas)功能来绘制不同颜色的图形,这对于初学者理解Android的绘图机制至关重要。 首先,让我们了解Android中的Canvas。Canvas是Android图形系统的核心组件之一,它允许...

    开源的HTML5 Canvas画图插件 - Literally Canvas

    初始化完成后,Literally Canvas会自动为`<canvas>`元素添加一套交互式的绘图工具,包括画笔、橡皮擦、选择工具等。用户可以通过鼠标进行绘画,同时,所有的绘图操作都会实时保存在Canvas元素的绘图状态中。 ...

    SVG和Canvas绘图:SVG和Canvas的性能优化技巧.docx

    SVG和Canvas绘图:SVG和Canvas的性能优化技巧.docx

    使用 HTML5 canvas 进行 Web 绘图

    - **Canvas 的基本绘图 API** - **JavaScript 与 Canvas 的交互** - **性能考量与未来发展趋势** #### HTML5 Canvas 的引入背景及意义 HTML5 Canvas 是一种用于网页中的图形渲染环境,其设计目的是为了在不借助第三...

    HTML5 canvas多功能涂鸦画板绘图代码.zip

    这个"HTML5 canvas多功能涂鸦画板绘图代码"项目利用了canvas和jQuery库来实现一个功能丰富的在线绘图应用程序。以下是关于这个项目的详细知识点: 1. **HTML5 Canvas**:Canvas是一个HTML5标签,它提供了一个二维...

    Android Canvas绘图Demo

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

    canvas、paint绘图

    在Android开发中,Canvas和Paint是两个至关重要的类,它们为开发者...TestPaintActivity这个示例代码很可能会包含上述提到的一些绘图技巧,通过查看和理解这些代码,可以进一步巩固和提升你的Canvas和Paint使用技能。

Global site tag (gtag.js) - Google Analytics