SteamPy,实现聊天,点击用户头像@功能时候,需要震动提示感.
1. 使用简介
初始化获取Vibrator对象
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
或者
vibrator = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
开始震动
1. vibrator.vibrate(2000);
//震动指定时间 ,数据类型long,单位为毫秒,一毫秒为1/1000秒
2. vibrator.vibrate(new long[]{100,10,100,1000}, -1);
//按照指定的模式去震动。
- 数组参数意义:第一个参数为等待指定时间后开始震动,震动时间为第二个参数。后边的参数依次为等待震动和震动的时间
- 第二个参数为重复次数,-1为不重复,0为一直震动
取消震动
vibrator.cancel();//取消震动,立即停止震动
震动为一直震动的话,如果不取消震动,就算退出,也会一直震动
权限
最重要的,增加权限,否则运行时出错
<uses-permission android:name="android.permission.VIBRATE"/>
2. 案例
震动工具类
public class VibrateHelp {
private static Vibrator vibrator;
/**
* 简单震动
* @param context 调用震动的Context
* @param millisecond 震动的时间,毫秒
*/
@SuppressWarnings("static-access")
public static void vSimple(Context context, int millisecond) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(millisecond);
}
/**
* 复杂的震动
* @param context 调用震动的Context
* @param pattern 震动形式
* @param repeate 震动的次数,-1不重复,非-1为从pattern的指定下标开始重复
*/
@SuppressWarnings("static-access")
public static void vComplicated(Context context, long[] pattern, int repeate) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern, repeate);
}
/**
* 停止震动
*/
public static void stop() {
if (vibrator != null) {
vibrator.cancel();
}
}
}
点击事件类
public class ViewClickVibrate implements OnClickListener{
/** 按钮震动时间 */
private final int VIBRATE_TIME = 60;
@Override
public void onClick(View v) {
// TODO 根据设置中的标记判断是否执行震动
VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
}
}