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

Android实现一个简单的画板

阅读更多
思路:
        自定义CustomView,重写onTouch(),和onDraw()。在onTouch中识别触屏事件,并记录触屏发生的位置。为了在ACTION_DOWN发生后能够接收到后续的触屏事件,我们需要让onTouch()返回true。
        在onDraw()中,将上一次触屏的Point和这一次触屏发生的Point,连成一条直线。因为invalidate()后,canvas被清空了,我们需要用mBitmap保存每一次绘画的结果。




package com.ipjmc.hello;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class CustomView extends View {

	private int mLastX, mLastY; //上次触屏的位置
	private int mCurrX, mCurrY; //当前触屏的位置
	
	private Bitmap mBitmap;  //保存每次绘画的结果
	private Paint mPaint;
	
	public CustomView(Context context, AttributeSet attrs) {
		super(context, attrs);
		mPaint = new Paint();
		mPaint.setStrokeWidth(6);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		
		int width = getWidth();
		int height = getHeight();
		
		if (mBitmap == null) {
			mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
		}
		
//先将结果画到Bitmap上
		Canvas tmpCanvas = new Canvas(mBitmap);
		tmpCanvas.drawLine(mLastX, mLastY, mCurrX, mCurrY, mPaint);

//再把Bitmap画到canvas上
		canvas.drawBitmap(mBitmap, 0, 0, mPaint);
	}
	
	@Override
	public boolean onTouchEvent(MotionEvent event) {
		
		mLastX = mCurrX;
		mLastY = mCurrY;
		mCurrX = (int) event.getX();
		mCurrY = (int) event.getY();
		
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
			mLastX = mCurrX;
			mLastY = mCurrY;
			break;
		default:
			break;
		}
		
		invalidate();

		return true; //必须返回true
	}
}

  • 大小: 4.5 KB
1
0
分享到:
评论

相关推荐

    Android 实现画板功能

    **清空画板**的功能一般会有一个“清除”按钮,点击后调用`Canvas`的`drawColor()`方法,将整个画布填充为设定的颜色,通常是白色,实现画板的清空。 **保存到本地**功能通常涉及到图像处理。开发者可能使用`Bitmap...

    Android 短代码实现 最简易的画板

    为了实现画板功能,我们需要创建一个新的自定义View子类。例如,我们可以创建一个名为`MyCanvas`的类,继承自`View`。 2. **onDraw()方法**: 这是绘制图形的核心方法。在`MyCanvas`类中,我们需要重写`onDraw()`...

    android实现画板功能

    该资源包含了使用android实现的一个简单的画板以及结合xfermode实现遮罩层画板效果。具体实现,可以参考博客http://blog.csdn.net/mockingbirds/article/details/49455421

    Android-DrawBoardDemo一个画板的demo实现画线和清除基本操作

    在Android开发中,创建一个画板应用是相当常见的需求,比如儿童教育应用、手写笔记应用等。`DrawBoardDemo`就是一个很好的实例,它展示了如何实现在Android上进行绘图和清除基本操作。这个项目主要涉及到以下几个...

    Android简易画板PaintOnTouchEvent

    在Android开发中,创建一个简易画板(PaintOnTouchEvent)是一项常见的需求,它涉及到自定义View、触摸事件处理以及用户交互的设计。这个项目的核心在于如何有效地处理OnTouchEvent,以实现用户在屏幕上绘制图形的...

    android 画板,白板,画图

    1. **SketchView**: SketchView是这个模块的核心组件,它是一个自定义的View类,用于实现画板功能。SketchView利用Android的`Canvas`和`Matrix`类来处理所有的图形绘制和变换操作。Canvas是Android图形系统的基础,...

    Android简易画板源码

    在Android开发中,创建一个简易画板应用是一个常见的练习,它可以帮助开发者深入理解自定义View的概念和绘图机制。这个源码项目就是基于这样的目的,使用了Android的自定义View来构建一个基本的画板功能,让用户可以...

    android简单的画图板实现代码

    这个"android简单的画图板实现代码"就是一个适合初学者的示例项目,旨在帮助开发者了解如何在Android环境中实现画图功能。我们将深入探讨这个项目中的关键知识点。 首先,我们需要了解Android图形绘制的基础。在...

    android之简易绘图板

    在Android平台上,开发一个简易的绘图板是一个常见的需求,特别是在构建教育、创意或娱乐类应用时。这个“android之简易绘图板”项目显然旨在提供一个基础的绘画功能,让用户能够在屏幕上自由绘制图形和线条。然而,...

    Android 画板(白板)源码 涂鸦 画图 图画

    本项目"Android 画板(白板)源码 涂鸦 画图 图画"提供了一个完整的实现,让用户能够自由地进行绘图操作。以下是基于该源码的主要知识点: 1. **绘图基础**: - Android的`Canvas`类:它是Android图形系统的核心,...

    android 画板

    在Android平台上,"画板"应用是一个允许用户进行绘画创作的软件。这个强大的画板应用提供了丰富的功能,包括但不限于选择不同颜色、画笔粗细、橡皮擦、填充工具等,使得用户可以在移动设备上享受绘画的乐趣。对于...

    android 画笔画板功能效果的实现.zip

    本项目标题"android 画笔画板功能效果的实现.zip"揭示了其核心内容:实现了一个能够模拟钢笔和水彩笔效果的画板,并且具备清除画布功能。下面我们将详细探讨这些知识点。 1. **Canvas与Paint类**: Android中的`...

    Android 画板view控件

    这个Android签名画板module的使用方式应该是相当直观的,开发者只需要将其导入项目,根据提供的API文档或示例代码进行简单的配置和调用,就可以快速地在应用中实现画板功能。这极大地简化了开发过程,提高了开发效率...

    Android自定义SurfaceView——实现画板功能

    本示例中的“Android自定义SurfaceView——实现画板功能”旨在教你如何利用`SurfaceView`创建一个可以画画的应用。`SurfaceView`是Android系统提供的一种用于高效显示动态图像的视图组件,它拥有自己的渲染线程,...

    opencv画板功能实现源程序

    为了实现画板功能,我们首先需要创建一个窗口并初始化一个空白的图像,通常使用`cv2.namedWindow()`创建窗口,`cv2.imshow()`显示图像。然后,我们需要捕获用户的鼠标事件,如按下、移动和释放。OpenCV提供了`cv2....

    android颜色画板选择

    在Android开发中,"颜色画板选择"是一个常见的功能,它允许用户在画板上选取特定的颜色,并获取选中区域的颜色值。这个功能通常应用于设计工具、色彩选择器或者美术类应用,为用户提供自由选择颜色的界面。在这个...

    android---用canvas实现画板

    在Android开发中,Canvas是用于在屏幕上绘制图形的重要工具,它是`android.graphics`包中的一个类。Canvas提供了各种方法来绘制线条、形状、文本、图片等元素,使得开发者能够实现丰富的用户界面,如画板应用。本文...

    Android 图画板Demo

    这个"Android 图画板Demo"旨在教你如何构建这样一个功能丰富的交互式绘图应用。 首先,我们需要了解Android中的触摸事件处理。在Android中,`MotionEvent`类用于表示用户在屏幕上的一系列触摸动作,如按下、移动和...

    Android画板

    "Android画板"这个项目就是一个这样的示例,它展示了如何在Android环境中实现这些功能。下面我们将深入探讨这个Demo所涉及的关键知识点。 1. **Android Canvas**: Android的Canvas类是绘制2D图形的核心工具。开发者...

    完整的安卓画板源代码 Android小画板

    "完整的安卓画板源代码 Android小画板" 提供的源代码是一个实例,它实现了画板应用的基础功能,使得开发者可以深入理解并学习如何在Android环境中创建一个交互式的绘图工具。下面将详细阐述涉及的知识点。 1. **...

Global site tag (gtag.js) - Google Analytics