文字抖一抖
res下定义 anim 文件在 anim 文件中定义动画
shake.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXDelta="10"
android:fromYDelta="0"
android:interpolator="@anim/shake_inter">
</translate>
- android:duration=“1000”: 动画时间
- android:fromXDelta: X 轴左右移动 10
- android:fromYDelta=“0” : Y 轴上下移动 0
- android:interpolator="@anim/shake_inter" : 插值器
shake_inter,xml插值器内容:
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator
xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="7"
></cycleInterpolator>
- android:cycles=“7”: 移动次数
代码使用:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.shake);
tv.startAnimation(animation);
手机震一震
手机震一震是 Android 自带的;
添加震一震权限:
<uses-permission android:name="android.permission.VIBRATE"/>
使用:
// 震动效果的系统服务
Vibrator mVibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
// 震动的时间 方式一:
mVibrator.vibrate(2000);//振动两秒
//震动时间 方式二:
/**
* 对于 pattern ,如有定义为new int[200,400,600,800]
*
* 200:指示在打开振动器之前等待的毫秒数。0.2秒。
* 400:表示在关闭振动器之前保持振动器处于开启状态的毫秒数,0.4秒。
* 600,800:几毫秒之间交替,以关闭振动器或打开振动器,0.6-0.8秒。
*/
//连续震动 3 次
//long[] pattern = {600,800,600,800,600,800};
//快速的震动 3 次
long[] pattern = {200,400,200,400,200,400};
mVibrator.vibrate(pattern, -1);
其他震一震方法:
- mVibrator.cancel(); 关闭/停止震动
- mVibrator.hasVibrator() 当前是否在震动状态