首先分析 输入框抖动 效果 实际上 就是一个动画 左右循环 抖动
Animation animation = AnimationUtils.loadAnimation(this, R.anim.shake);
//下面的 可以设置 动画的 插入器 用函数来控制动画的动作
/* animation.setInterpolator(new Interpolator() {
@Override
public float getInterpolation(float input) {
// TODO Auto-generated method stub
return 0;
}
});*/
edt_select_number.startAnimation(animation);
上面 2行 代码设置 动画 其中R.anim.shake 是 一个抖动动画的 xml文件 从系统中得到的 自己也可以 自定义
R.anim.shake
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXDelta="0"
android:interpolator="@anim/cycle_7"
android:toXDelta="10" />
cycle_7.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
其中 插入器可以 自定义 就相当于 初中学的函数
而对于震动效果 需要一个private Vibrator vibrator;
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); 这是一个系统服务
由于 震动效果 会影响用户的使用 所以必须 添加相应的权限
<uses-permission android:name="android.permission.VIBRATE"/>
vibrator.vibrate(2000);//振动两秒钟
//-1不重复,非-1为从pattern的指定下标开始重复
long[] pattern = {100,200,100,200,50,50}; //这个数组 是控制 震动的变化的
vibrator.vibrate(pattern, 1);