这个例子,自定义了一个View,可以接受touch动作,然后在屏幕上即时的显示出touch的轨迹,类似于线条的涂鸦。这个例子主要是演示如何将onTouchEvent与draw配合起来使用。在这个基础上,可以做很多有用的程序。
(注意invalidate()这个方法。这个比较关键。加入这个方法的调用主要是为了强制View进行重画。)
view plaincopy to clipboardprint?
package com.arui;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Paint.Style;
import android.view.MotionEvent;
import android.view.View;
/**
* Example for hand writing.
*
* @author http://blog.csdn.net/arui319
* @version 2010/09/07
*
*/
public class HandwritingView extends View {
private Paint paint = null;
private Path path = null;
public HandwritingView(Context context) {
super(context);
path = new Path();
paint = new Paint();
paint.setColor(Color.YELLOW);
paint.setStyle(Style.STROKE);
paint.setAntiAlias(true);
this.setBackgroundColor(Color.BLACK);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
int x = (int) event.getX();
int y = (int) event.getY();
path.moveTo(x, y);
invalidate();
return true;
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
int x = (int) event.getX();
int y = (int) event.getY();
path.lineTo(x, y);
invalidate();
return true;
}
return super.onTouchEvent(event);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (path != null) {
canvas.drawPath(path, paint);
}
}
}
转载:http://blog.csdn.net/arui319/archive/2010/09/08/5870651.aspx
分享到:
相关推荐
"android涂鸦小例子"是一个关于如何在Android应用中实现一个简单的涂鸦功能的教程。在这个项目中,我们将探讨如何创建一个自定义的View类,使得用户可以在屏幕上进行自由绘图。 首先,我们来理解"自定义控件"的概念...
在这个例子中,可能使用GestureDetector监听用户的触摸事件,以便在屏幕上绘制。 - **MotionEvent**:当用户触摸屏幕时,系统会产生一系列MotionEvent,包含触摸事件的类型、坐标等信息。开发者可以根据这些信息...
标题提到的“Android-用于涂鸦的自定义Android View”是指开发者创建了一个专门用于用户涂鸦的自定义视图类,它允许用户在屏幕上自由绘制线条、图形,提供了类似于涂鸦板的功能。这种自定义View通常是通过继承...
作者之前已经在Qt平台上实现了类似的涂鸦功能,并且现在希望将其移植到Android平台上,以此来体验不同的开发环境和技术栈。 #### 二、技术要点概述 在开发过程中,主要涉及的技术点包括但不限于: - **Android开发...
在Android开发中,Bitmap是用于在屏幕上显示图像的基本数据类型。在这个案例中,我们创建了一个自定义的View类`HandWrite`,它继承自`View`,并实现了在Bitmap上绘画的功能。`HandWrite`类有几个关键成员变量: 1. ...
在Android平台上,开发一款涂鸦程序是一个非常基础且有趣的实践项目,这可以帮助初学者更好地理解和掌握Android游戏开发的基础知识。本教程将详细讲解如何利用Android SDK创建一个简单的涂鸦应用程序。 首先,我们...
在Android平台上,开发一个简单的涂鸦板应用是一个有趣且实用的学习项目,可以帮助开发者熟悉图形绘制、触摸事件处理以及用户界面设计。在这个实例中,我们将深入探讨如何创建这样一个涂鸦板应用。 首先,我们需要...
在这个“随手涂鸦”的例子中,我们主要关注Activity,它是用户与应用交互的主要入口。在这里,我们将创建一个主Activity,用作画板界面。 Canvas是Android图形系统中的核心元素,它相当于一个画布,允许开发者在其...
在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是Android Graphics系统的一部分。Canvas类提供了各种方法,让我们能够绘制线条、形状、文本以及位图等。本篇将深入探讨`Android Canvas绘图`的相关...
【Android例子源码ClipPicture——深度解析仿微信截图技术】 在Android开发中,实现类似微信的截图功能是一项常见的需求,而“ClipPicture”项目正是一个实现了这一功能的优秀示例,其模仿微信截图的相似度高达99%...
在Android平台上实现“图片毛玻璃区块涂鸦马赛克手指涂鸦效果处理”涉及多个关键知识点,主要包括图像处理、手势识别、像素操作以及UI设计。接下来,我们将详细探讨这些技术领域。 1. 图像处理: - 图片加载:首先...
在Android开发中,"简单的Android画笔Demo"通常是指一个用于教学或实验目的的应用程序,它允许用户在屏幕上自由绘制并提供一些基本的功能,如撤销、改变画笔颜色和宽度。这个Demo是学习Android图形绘制和交互式UI...
在压缩包内的“Android例子源码对图片进行毛玻璃区块涂鸦马赛克手指涂鸦效果处理”文件中,我们可以找到实现这些功能的具体代码。这些源码可能会包含多个类,比如Activity用于处理用户交互,Service用于后台处理大图...