今天尝试了一下文本框的振动效果。一般我们会在输入的时候,要是输入的内容不符合我们的要求的时候,我们可以做一个反馈。很多程序上会有这一个文本输入框的左右反复运动的效果来提示我们输入不符合要求。这个效果其实API Demo里面也有所以我就直接根据里面的使用方法来实现。
1.首先先findViewById到EditText
EditText etNumber = (EditText) findViewById(R.id.et_number);
2.然后在res文件夹里面新建一个anim文件夹(里面主要放我们的动画描述文件)
谷歌API demo实现这个效果主要用到了两个文件一个叫cycle_7.xml和shake.xml
shake.xml主要实现的是一个 translate 位置转移动画效果
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXDelta="0" android:interpolator="@anim/cycle_7" android:toXDelta="10" />
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
duration 属性为动画持续时间(以毫秒为单位)
在这些属性里面还可以加上%和p,例如:
Android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。
android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。
然后cycle_7.xml文件是一个Interpolator
Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
而 CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线,这里是说循环了7次
最后我们将两个动画文件通过loadAnimation设给我们的文本框
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); etNumberAddress.startAnimation(shake);
这样就可以实现文本框的左右移动效果啦.。