思路:
自定义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
分享到:
相关推荐
Android 短代码实现 最简易的画板
基于android实现了画板,支持返回上一次和下一次的绘制记录,支持清空画板,支持橡皮擦功能,支持保存到本地,支持画笔更换颜色
该资源包含了使用android实现的一个简单的画板以及结合xfermode实现遮罩层画板效果。具体实现,可以参考博客http://blog.csdn.net/mockingbirds/article/details/49455421
DrawBoardDemo一个画板的demo,实现画线和清除基本操作
使用Android的自定义View写的Android画板程序,主要使用DrawPath()实现,需要的童鞋可以下来看看。
android实现的超简单的绘图板,没有使用双缓冲技术
非常好的android画图源码,可以绘制线段、直线、矩形、圆,可以插入图片、更换背景、还可以将画图保持成图片。
android开发:用canvas实现画板的功能。
这是一款android的画图板实现代码,基本功能齐全,适合初学者开发的例子程序。
继承View类,实现触摸事件OnTouchEvent,使用菜单选项。
android 画笔画板功能效果的实现钢笔和水彩笔,同时提供了清除画布的功能
通过使用Opencv来实现画板功能的源程序。
简单实用Canvas,Paint等实现了一个在android端的画板的功能。可以供签字实用
自定义view-Android实现手写板和涂鸦
Android图形处理实现 微信画板、 去掉美女衣服、图片合成、图片矩阵、调整色相、饱和度,博客地址:https://blog.csdn.net/dreams_deng/article/details/105262449
这个是Android签名画板module,下载可直接使用,非常方便,轻量高效集成,节省资源,可实现涂鸦,签名,图层等等
实现了画板的各种功能,网上找的,共享了。 实现了画板的各种功能,网上找的,共享了。 实现了画板的各种功能,网上找的,共享了。 实现了画板的各种功能,网上找的,共享了。
基于socket实现的pc端和android端同步绘画板_ANDROID源码
LittleDrawBoard PC端是基于Socket实现的android端和PC端同步绘画板
本文实例为大家分享了Android实现画板的具体代码,采用的技术是双缓冲技术,供大家参考,具体内容如下 1.双缓冲技术的概念 所谓的双缓冲技术其实很简单,当程序需要在指定的View上进行绘制时,程序并不需要直接绘制...