Android源码下载:屏幕画笔Demo

移动开发 Android
该Demo主要以当前桌面为背景,完成画笔的相关功能。1、画笔的添加、移除等功能;2、针对不同的生命周期,响应不同的桌面背景。

功能分类:工具

支持平台:Android

运行环境:Eclipse

开发语言:Java

开发工具:Eclipse

源码大小:30.93KB

源码下载地址:http://down.51cto.com/data/1984802

源码简介

该Demo主要以当前桌面为背景,完成画笔的相关功能。

1、画笔的添加、移除等功能;

2、针对不同的生命周期,响应不同的桌面背景。

源码运行截图

桌面背景,进行涂鸦

返回键撤销画笔路径

home,切换背景后,继续涂鸦

画笔涂鸦

源码片段

  1. public ScreenPaintView(Context context, int w, int h) { 
  2.         super(context); 
  3.         screenWidth = w; 
  4.         screenHeight = h; 
  5.   
  6.         mBitmap = Bitmap.createBitmap(screenWidth, screenHeight, 
  7.                 Bitmap.Config.ARGB_8888); 
  8.         // 保存一次一次绘制出来的图形 
  9.         mCanvas = new Canvas(mBitmap); 
  10.   
  11.         mBitmapPaint = new Paint(Paint.DITHER_FLAG); 
  12.         mPaint = new Paint(); 
  13.         mPaint.setAntiAlias(true); 
  14.         mPaint.setStyle(Paint.Style.STROKE); 
  15.         mPaint.setStrokeJoin(Paint.Join.ROUND);// 设置外边缘 
  16.         mPaint.setStrokeCap(Paint.Cap.SQUARE);// 形状 
  17.         mPaint.setStrokeWidth(8);// 画笔宽度 
  18.         mPaint.setColor(0xFF2145FF);// 画笔颜色 
  19.         savePath = new ArrayList<drawpath>(); 
  20.     } 
  21.   
  22.     @Override 
  23.     public void onDraw(Canvas canvas) { 
  24.         canvas.drawColor(0x0FFFFFFF); 
  25.         // 将前面已经画过得显示出来 
  26.         canvas.drawBitmap(mBitmap, 00, mBitmapPaint); 
  27.         if (mPath != null) { 
  28.             // 实时的显示 
  29.             canvas.drawPath(mPath, mPaint); 
  30.         } 
  31.     } 
  32.   
  33.     private void touch_start(float x, float y) { 
  34.         mPath.moveTo(x, y); 
  35.         mX = x; 
  36.         mY = y; 
  37.     } 
  38.   
  39.     private void touch_move(float x, float y) { 
  40.         float dx = Math.abs(x - mX); 
  41.         float dy = Math.abs(mY - y); 
  42.         if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) { 
  43.             // 从x1,y1到x2,y2画一条贝塞尔曲线,更平滑(直接用mPath.lineTo也是可以的) 
  44.             // 由此就可以制作各种画笔 
  45.             mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2); 
  46.             mX = x; 
  47.             mY = y; 
  48.         } 
  49.     } 
  50.   
  51.     private void touch_up() { 
  52.         mPath.lineTo(mX, mY); 
  53.         mCanvas.drawPath(mPath, mPaint); 
  54.         // 将一条完整的路径保存下来(相当于入栈操作) 
  55.         savePath.add(dp); 
  56.         mPath = null;// 重新置空 
  57.     }</drawpath> 

源码下载地址:http://down.51cto.com/data/1984802

责任编辑:闫佳明 来源: 网络整理
相关推荐

2015-01-20 17:01:30

Android源码QQdemo

2013-08-06 15:13:57

Android 4.3源码

2015-02-27 15:46:09

Android源码桌面APP

2015-01-22 14:12:40

Android源码APP启动引导

2015-01-23 16:32:52

2015-01-15 16:25:23

Android源码Socket通信

2015-01-21 15:28:16

Android源码新浪微博

2015-01-20 17:09:21

Android源码手势锁

2009-03-22 10:52:36

CCNA屏幕录像视频

2015-01-22 15:44:55

Android源码音乐播放器

2015-01-14 14:22:30

Android源码游戏

2013-05-22 09:49:36

2012-07-10 09:34:50

jQuery

2015-01-21 16:07:57

Android源码验证码倒计时

2013-05-28 10:39:44

Android开发移动开发

2015-02-27 16:03:26

Android源码Bluetooth_4BLE蓝牙通信

2013-03-28 13:27:14

Android获取屏幕

2013-07-23 07:03:51

Android开发学习Gallery实现3DAndroid源码下载

2013-12-27 12:51:44

Android开发Android应用引路蜂

2014-12-17 15:23:03

Android网络阅读器源码
点赞
收藏

51CTO技术栈公众号