功能分类:工具
成都创新互联是一家专业提供荔浦企业网站建设,专注与成都网站建设、成都网站设计、html5、小程序制作等业务。10年已为荔浦众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
支持平台:Android
运行环境:Eclipse
开发语言:Java
开发工具:Eclipse
源码大小:30.93KB
源码简介
该Demo主要以当前桌面为背景,完成画笔的相关功能。
1、画笔的添加、移除等功能;
2、针对不同的生命周期,响应不同的桌面背景。
源码运行截图
桌面背景,进行涂鸦
返回键撤销画笔路径
home,切换背景后,继续涂鸦
画笔涂鸦
源码片段
- public ScreenPaintView(Context context, int w, int h) {
- super(context);
- screenWidth = w;
- screenHeight = h;
- mBitmap = Bitmap.createBitmap(screenWidth, screenHeight,
- Bitmap.Config.ARGB_8888);
- // 保存一次一次绘制出来的图形
- mCanvas = new Canvas(mBitmap);
- mBitmapPaint = new Paint(Paint.DITHER_FLAG);
- mPaint = new Paint();
- mPaint.setAntiAlias(true);
- mPaint.setStyle(Paint.Style.STROKE);
- mPaint.setStrokeJoin(Paint.Join.ROUND);// 设置外边缘
- mPaint.setStrokeCap(Paint.Cap.SQUARE);// 形状
- mPaint.setStrokeWidth(8);// 画笔宽度
- mPaint.setColor(0xFF2145FF);// 画笔颜色
- savePath = new ArrayList
(); - }
- @Override
- public void onDraw(Canvas canvas) {
- canvas.drawColor(0x0FFFFFFF);
- // 将前面已经画过得显示出来
- canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
- if (mPath != null) {
- // 实时的显示
- canvas.drawPath(mPath, mPaint);
- }
- }
- private void touch_start(float x, float y) {
- mPath.moveTo(x, y);
- mX = x;
- mY = y;
- }
- private void touch_move(float x, float y) {
- float dx = Math.abs(x - mX);
- float dy = Math.abs(mY - y);
- if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
- // 从x1,y1到x2,y2画一条贝塞尔曲线,更平滑(直接用mPath.lineTo也是可以的)
- // 由此就可以制作各种画笔
- mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
- mX = x;
- mY = y;
- }
- }
- private void touch_up() {
- mPath.lineTo(mX, mY);
- mCanvas.drawPath(mPath, mPaint);
- // 将一条完整的路径保存下来(相当于入栈操作)
- savePath.add(dp);
- mPath = null;// 重新置空
- }
当前标题:Android源码下载:屏幕画笔Demo
链接地址:http://www.shufengxianlan.com/qtweb/news45/281945.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联