Android实现控件随手指滑动缩放

android实现控件抖动效果

本来这就是我平时的两篇练习,但是昨天看了一下感觉其实还挺有用的.就把他拿出了献丑了,还有另外一篇关于手指滑动实现控件缩放的的博客喜欢的可以关注.

实现思路

实现这种动画的方式是很多的,可以是补间动画,熟悉动画,而我们用xml动画的方式(也就是补间动画)实现控件的抖动效果

先贴代码

动画文件代码 anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"

>
<translate
android:fromXDelta="0"
android:toXDelta="-50"
android:fromYDelta="0"
android:toYDelta="-50"
android:duration="150"
android:interpolator="@anim/interplator"
/>
<translate
android:fromXDelta="0"
android:toXDelta="50"
android:fromYDelta="0"
android:toYDelta="-50"
android:startOffset="150"
android:interpolator="@anim/interplator"
android:duration="150"
/>
<translate
android:fromXDelta="0"
android:toXDelta="-50"
android:fromYDelta="0"
android:toYDelta="70"
android:startOffset="300"
android:duration="150"
android:interpolator="@anim/interplator"
/>
<translate
android:fromXDelta="0"
android:toXDelta="50"
android:fromYDelta="0"
android:toYDelta="70"
android:startOffset="450"
android:duration="150"
android:interpolator="@anim/interplator"
/>
<translate
android:fromXDelta="0"
android:toXDelta="-50"
android:fromYDelta="0"
android:toYDelta="-50"
android:duration="150"
android:startOffset="600"
android:interpolator="@anim/interplator"
/>

</set>
差值器代码 interpolator.xml
<?xml version="1.0" encoding="utf-8"?>
<accelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="20"

>

</accelerateInterpolator>

这段代码看起来还不是特别的流畅如果想要真正用到项目中,还需要多加调试

实现原理

上面anim.xml文件一共五个动画

第一个动画::向右上方移动
第二个动画::向左上方移动
第三个动画::向右下方移动
第四个动画::向左下方移动
还有第五个动画重复第一个动画

这样就能实现抖动效果了

注意上面从第二个动画开始的动画开始时间,每一个动画的开始时间都在它上一个动画运行的的中间时间开始(当然也可以是其它的时间),

为什么要这样做呢: 因为如果我们将一个动画的开始时间设置为它的上一个动画的结束时间,那么中间会有短时间的停顿,整个动画的效果会变得不好.通过将下一个动画的开始时间提前可以消除掉这种停顿,这也是网上大多数抖动效果没有说清楚的地方.

东西不多刚好是这些没有说清楚的地方是动画的关键,我只是将这些别人疏忽的地方讲清楚而已.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值