Path 综合实战——滑雪

本文通过一个滑雪的Android自定义控件实例,详细介绍如何使用Path、贝塞尔曲线、PathMeasure等API实现动态效果。讲解了从初始化设置、获取View尺寸、绘制图形、设置动画到外部调用的完整流程。
摘要由CSDN通过智能技术生成

Path是自定义控件中非常重要的一部分,上一篇闲聊自定义控件之基础——Path中介绍了Path相关的基础知识,今天通过一个滑雪的demo,演示下Path相关API的使用。

该demo用到的Path的知识点主要有贝塞尔曲线、Path逻辑运算、PathMeasure等,这些都是常用的,而且比较重要的知识点。
闲话少说,先看效果图:
这里写图片描述

1.首先是初始化的操作
private void init() {
        mPaint = new Paint();
        mPaint.setColor(Color.WHITE);
        mPaint.setStyle(Paint.Style.FILL);
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 2;
        mBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.snow_boarding, options);
        pos = new float[2];
        tan = new float[2];
        mMatrix = new Matrix();
        mSnowPath = new Path();
        mBottomPath = new Path();
        mPathMeasure = new PathMeasure();
    }

主要是设置画笔,获取图片(滑雪的小人),创建了两个path,一个是上端曲线,一个是下端用于封闭路径的,还有一个PathMeasure,用于获取对应点坐标以及其它信息。

需要注意的是之所以设置两个path,是因为图片只在上面曲线滑动,可以将上面的曲线作为一个单独的path,剩下的作为一个path,然后通过逻辑运算来完成。

2.获取View的宽高
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值