设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9013|回复: 2
打印 上一主题 下一主题

[编程交流] Android画板

[复制链接]

29

主题

0

好友

92

积分

注册会员

Rank: 2

性别
保密
跳转到指定楼层
楼主
发表于 2013-6-13 10:27:04 |只看该作者 |倒序浏览
本帖最后由 sky_yx 于 2015-12-30 14:07 编辑

思路:
        自定义CustomView,重写onTouch(),和onDraw()。在onTouch中识别触屏事件,并记录触屏发生的位置。为了在ACTION_DOWN发生后能够接收到后续的触屏事件,我们需要让onTouch()返回true。
Java代码
package com.ipjmc.hello;  
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();  
    }  
    @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  
    }  
}   

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享淘帖0 收藏收藏0 评分评分

150

主题

5

好友

1179

积分

管理员

Rank: 9Rank: 9Rank: 9

性别
保密

最佳新人 活跃会员 推广达人 宣传达人 突出贡献 优秀版主 论坛元老

沙发
发表于 2013-10-6 19:12:03 |只看该作者
up and support
回复

使用道具 评分 举报

48

主题

0

好友

271

积分

中级会员

Rank: 3Rank: 3

自我介绍
七七云YUN77.NET-银行级的云计算实施方案,为企业云应用保驾护航!电话:4000351360
性别
保密
板凳
发表于 2015-3-16 11:45:45 |只看该作者
本帖最后由 sky_yx 于 2015-12-30 14:07 编辑

新人顶帖!!!!

回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-12-22 19:51 , Processed in 0.116459 second(s), 26 queries .

回顶部