下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android控件怎么实现直播App点赞飘心动画
运行效果/upload/information/20200623/125/123834.gif一、具体实现流程“爱心”的出现动画private
AnimatorSet
generateEnterAnimation(View
target)
{
ObjectAnimator
alpha
=
ObjectAnimator.ofFloat(target,
"alpha",
0.2f,
1f);
ObjectAnimator
scaleX
=
ObjectAnimator.ofFloat(target,
"scaleX",
0.5f,
1f);
ObjectAnimator
scaleY
=
ObjectAnimator.ofFloat(target,
"scaleY",
0.5f,
1f);
AnimatorSet
enterAnimation
=
new
AnimatorSet();
enterAnimation.playTogether(alpha,
scaleX,
scaleY);
enterAnimation.setDuration(150);
enterAnimation.setTarget(target);
return
enterAnimation;
}“爱心“的上浮轨迹动画private
ValueAnimator
generateCurveAnimation(View
target)
{
CurveEvaluator
evaluator
=
new
CurveEvaluator(generateCTRLPointF(1),
generateCTRLPointF(2));
ValueAnimator
valueAnimator
=
ValueAnimator.ofObject(evaluator,
new
PointF((mViewWidth
-
mPicWidth)
/
2,
mViewHeight
-
mChildViewHeight
-
mPicHeight),
new
PointF((mViewWidth)
/
2
+
(mRandom.nextBoolean()
?
1
:
-1)
*
mRandom.nextInt(100),
0));
valueAnimator.setDuration(3000);
valueAnimator.addUpdateListener(new
CurveUpdateLister(target));
valueAnimator.setTarget(target);
return
valueAnimator;
}/upload/information/20200623/125/123835.jpgprivate
class
CurveEvaluator
implements
TypeEvaluator<PointF>
{
//
由于这里使用的是三阶的贝塞儿曲线,
所以我们要定义两个控制点
private
PointF
ctrlPointF1;
private
PointF
ctrlPointF2;
public
CurveEvaluator(PointF
ctrlPointF1,
PointF
ctrlPointF2)
{
this.ctrlPointF1
=
ctrlPointF1;
this.ctrlPointF2
=
ctrlPointF2;
}
@Override
public
PointF
evaluate(float
fraction,
PointF
startValue,
PointF
endValue)
{
//
这里运用了三阶贝塞儿曲线的公式,参照上面公式
float
leftTime
=
1.0f
-
fraction;
PointF
resultPointF
=
new
PointF();
//
三阶贝塞儿曲线
resultPointF.x
=
(float)
Math.pow(leftTime,
3)
*
startValue.x
+
3
*
(float)
Math.pow(leftTime,
2)
*
fraction
*
ctrlPointF1.x
+
3
*
leftTime
*
(float)
Math.pow(fraction,
2)
*
ctrlPointF2.x
+
(float)
Math.pow(fraction,
3)
*
endValue.x;
resultPointF.y
=
(float)
Math.pow(leftTime,
3)
*
startValue.y
+
3
*
(float)
Math.pow(leftTime,
2)
*
fraction
*
ctrlPointF1.y
+
3
*
leftTime
*
fraction
*
fraction
*
ctrlPointF2.y
+
(float)
Math.pow(fraction,
3)
*
endValue.y;
//
二阶贝塞儿曲线,具体公式请上网查阅
//
resultPointF.x
=
(float)
Math.pow(leftTime,
2)
*
startValue.x
+
2
*
fraction
*
leftTime
*
ctrlPointF1.x
//
+
((float)
Math.pow(fraction,
2))
*
endValue.x;
//
resultPointF.y
=
(float)
Math.pow(leftTime,
2)
*
startValue.y
+
2
*
fraction
*
leftTime
*
ctrlPointF1.y
//
+
((float)
Math.pow(fraction,
2))
*
endValue.y;
return
resultPointF;
}
}二、使用操作<com.anenn.flowlikeviewlib.FlowLikeView
android:id="@+id/flowLikeView"
android:layout_width="75dp"
android:layout_height="200dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="@android:color/transparent"
android:includeFontPadding="false"
android:onClick="addLi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中央2025年中国残联直属单位招聘26人笔试历年典型考点题库附带答案详解
- 2026年旅游行业虚拟现实体验创新报告及旅游模式变革分析报告
- 上海上海市中国工程院院士咨询与学术活动中心招聘笔试历年备考题库附带答案详解
- 上海2025年上海市疾病预防控制中心(上海市预防医学科学院)中高级岗位招聘笔试历年备考题库附带答案详解
- 黔西南布依族苗族自治州2025贵州黔西南州市场监督管理局下属事业单位十二届人博会引进高层次急需笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2026国航股份商务委员会京外各营销中心高校毕业生校园招聘6人笔试参考题库附带答案详解
- 2026中煤地质集团有限公司高校毕业生招聘笔试参考题库附带答案详解
- 2025-2030中国高尔夫球场行李车动力系统选型与技术规范
- 基于BIM的装配式建筑全生命周期成本管理策略研究教学研究课题报告
- 2025甘肃省内铁路系统安检工作人员招聘40人(第二期)笔试参考题库附带答案详解
- 2025河南周口临港开发区事业单位招才引智4人考试重点题库及答案解析
- 2025年无人机资格证考试题库+答案
- 南京工装合同范本
- 登高作业监理实施细则
- DB42-T 2462-2025 悬索桥索夹螺杆紧固力超声拉拔法检测技术规程
- 大学生择业观和创业观
- 车载光通信技术发展及无源网络应用前景
- 工程伦理-形考任务四(权重20%)-国开(SX)-参考资料
- 初中书香阅读社团教案
- 酒店年终总结汇报
- 《无人机地面站与任务规划》 课件 第1-5章 概论 -无人机航测任务规划与实施
评论
0/150
提交评论