ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

直播带货平台源码自定义view之利用PathEffect实现动态效果实现

2021-08-26 14:36:12  阅读:212  来源: 互联网

标签:lineTo PathDashPathEffect 自定义 ComposePathEffect 动态效果 源码 Path new 图形


直播带货平台源码自定义view之利用PathEffect实现动态效果实现的相关代码
一、首先介绍下PathEffect的一些子类

CornerPathEffect:将Path的各个连接线段之间的夹角用一种更平滑的方式连接,类似于圆弧与切线的效果。 参数radius则是指定圆弧的半径。

DashPathEffect:将Path的线段虚线化,intervals为虚线的ON和OFF的数组,数组中元素数目需要 >= 2; 而phase则为绘制时的偏移量。

DiscretePathEffect:打散Path的线段,使得在原来路径的基础上发生打散效果。 segmentLength指定最大的段长,deviation则为绘制时的偏离量。

PathDashPathEffect:使用Path图形来填充当前的路径,shape指的填充图形,advance是每个图形间的间隔, phase为绘制时的偏移量。,style则是该类自由的枚举值,有三种情况:ROTATE、MORPH和TRANSLATE。ROTATE情况下:线段连接处的图形转换以旋转到与下一段移动方向相一致的角度进行连接。MORPH情况下:图形会以发生拉伸或压缩等变形的情况与下一段相连接。TRANSLATE情况下:图形会以位置平移的方式与下一段相连接。

ComposePathEffect:组合效果

SumPathEffect:叠加效果,和ComposePathEffect不同,在表现时会将两个参数的效果都独立的表现出来, 接着将两个效果简单的重叠在一起显示出来

 二、看看子类具体的一些代码

private static void makeEffects(PathEffect[] e, float phase) {
e[0] = null; // 无效果
e[1] = new CornerPathEffect(30);//CornerPathEffect
e[2] = new DashPathEffect(new float[] {10, 5, 5, 5}, phase);//DashPathEffect
e[3] = new PathDashPathEffect(makePathDash(), 12, phase,
PathDashPathEffect.Style.ROTATE);//PathDashPathEffect
e[4] = new ComposePathEffect(e[2], e[1]);//ComposePathEffect
e[5] = new ComposePathEffect(e[3], e[1]);//ComposePathEffect
}

 

三、案例实现(CornerPathEffect,PathDashPathEffect,ComposePathEffect)
实现的效果是上序代码的e[5],使用CornerPathEffect实现圆弧效果,而重点是PathDashPathEffect。
PathDashPathEffect里面有几个参数:

new PathDashPathEffect(makePathDash(), 12, phase,
PathDashPathEffect.Style.ROTATE);

 

第一个参数为小path图形,案例中博主画的是菱形:

private static Path makePathDash() {
Path p = new Path();
p.moveTo(0, 0);
p.lineTo(4, 4);
p.lineTo(8, 0);
p.lineTo(4, -4);
p.moveTo(0, 0);
return p;
}

 

第二个参数为每个图形间的间隔。
第三个参数为绘制时的偏离量
第四个参数为样式,博主选择的是ROTATE情:线段连接处的图形转换以旋转到与下一段移动方向相一致的角度进行连接。
最后使用ComposePathEffect进行组合。
绘制运动路径

private static Path makeFollowPath() {
Path p = new Path();
p.moveTo(0, 0);
p.lineTo(400,0);
p.lineTo(400,400);
p.lineTo(0,400);
p.lineTo(0,0);
return p;
}

 

修改偏移量实现动态效果

mPhase += 1;
invalidate();

 

以上就是 直播带货平台源码自定义view之利用PathEffect实现动态效果实现的相关代码,更多内容欢迎关注之后的文章

标签:lineTo,PathDashPathEffect,自定义,ComposePathEffect,动态效果,源码,Path,new,图形
来源: https://www.cnblogs.com/yunbaomengnan/p/15189327.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有