Android源码下载:屏幕画笔Demo

功能分类:工具

成都创新互联是一家专业提供荔浦企业网站建设,专注与成都网站建设、成都网站设计、html5、小程序制作等业务。10年已为荔浦众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

支持平台:Android

运行环境:Eclipse

开发语言:Java

开发工具:Eclipse

源码大小:30.93KB

源码简介

该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(); 
  20.     } 
  21.   
  22.     @Override 
  23.     public void onDraw(Canvas canvas) { 
  24.         canvas.drawColor(0x0FFFFFFF); 
  25.         // 将前面已经画过得显示出来 
  26.         canvas.drawBitmap(mBitmap, 0, 0, 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.     } 

当前标题:Android源码下载:屏幕画笔Demo
链接地址:http://www.shufengxianlan.com/qtweb/news45/281945.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联