全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 使用Path实现涂鸦功能

今天实现一个涂鸦效果,会分几步实现,这里有一个重要的知识点就是图层,要理解这个,不然你看这篇博客,很迷茫,迷茫的苍茫的天涯是我的爱,先从简单的需求做起,绘制一条线,代码如下:

package com.tuya;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
/**
 * Created by admin on 2016/12/16.
 */
public class GraffitiView extends View{
  private Paint paint;
  private Path path;
  private float downX,downY;
  private float tempX,tempY;
  public GraffitiView(Context context) {
    this(context,null);
  }
  public GraffitiView(Context context, AttributeSet attrs) {
    this(context, attrs,0);
  }
  public GraffitiView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
  }
  private void init() {
    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(10);
    paint.setStyle(Paint.Style.STROKE);
    path = new Path();
  }
  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    if(path!=null){
      canvas.drawPath(path,paint);
    }
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()){
      case MotionEvent.ACTION_DOWN:
        downX = event.getX();
        downY = event.getY();
        path.moveTo(downX,downY);
        invalidate();
        tempX = downX;
        tempY = downY;
        break;
      case MotionEvent.ACTION_MOVE:
        float moveX = event.getX();
        float moveY = event.getY();
        path.quadTo(tempX,tempY,moveX,moveY);
        invalidate();
        tempX = moveX;
        tempY = moveY;
        break;
    }
    return true;
  }
}

效果:

如果你不使用path的quadTo()用lineTo()方法也行,但是没有使用queadTo()绘制出来的路径光滑,这5条路径是怎么绘制到屏幕上去的呢?上面说了图层的概念,如果不懂,可以去看下我之前写的关于canvas博客,也可以去网上看其他的博客,
我们知道每次canvas.draw...()其实都会产生新的图层,只是图层是透明的,最后隐射到画布(canvas)上,画布分析:

以上所述是小编给大家介绍的Android 使用Path实现涂鸦功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # path  # 涂鸦效果  # Android实现签名涂鸦手写板  # android中实现在ImageView上随意画线涂鸦的方法  # android 实现在照片上绘制涂鸦的方法  # Android编程实现的手写板和涂鸦功能  # Android实现Path平滑的涂鸦效果实例  # Android 开发实例简单涂鸦板  # Android编程实现在Bitmap上涂鸦效果  # AndroidStudio实现能在图片上涂鸦程序  # 图层  # 小编  # 博客  # 在此  # 说了  # 是怎么  # 不懂  # 你看  # 去看  # 给大家  # 几步  # 这篇  # 我的爱  # 也行  # 所述  # 给我留言  # 感谢大家  # 有一个  # 一条线  # 如果你不 


相关文章: 高端建站如何打造兼具美学与转化的品牌官网?  Android自定义控件实现温度旋转按钮效果  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Python路径拼接规范_跨平台处理说明【指导】  公司门户网站制作流程,华为官网怎么做?  Swift开发中switch语句值绑定模式  如何通过建站之星自助学习解决操作问题?  建设网站制作价格,怎样建立自己的公司网站?  如何用狗爹虚拟主机快速搭建网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站之星云端配置指南:模板选择与SEO优化一键生成  如何在企业微信快速生成手机电脑官网?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何快速查询域名建站关键信息?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  C++如何编写函数模板?(泛型编程入门)  网站制作软件免费下载安装,有哪些免费下载的软件网站?  C++中引用和指针有什么区别?(代码说明)  建站之星价格显示格式升级,你的预算足够吗?  如何基于云服务器快速搭建网站及云盘系统?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  定制建站流程步骤详解:一站式方案设计与开发指南  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何快速打造个性化非模板自助建站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  定制建站流程解析:需求评估与SEO优化功能开发指南  实现虚拟支付需哪些建站技术支撑?  广东企业建站网站优化与SEO营销核心策略指南  青浦网站制作公司有哪些,苹果官网发货地是哪里?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  完全自定义免费建站平台:主题模板在线生成一站式服务  建站之星3.0如何解决常见操作问题?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  官网建站费用明细查询_企业建站套餐价格及收费标准指南  深入理解Android中的xmlns:tools属性  如何在西部数码注册域名并快速搭建网站?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何通过智能用户系统一键生成高效建站方案?  建站之星伪静态规则如何正确配置?  网站制作话术技巧,网站推广做的好怎么话术?  如何制作算命网站,怎么注册算命网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。