Androidの 点击按钮Vibrator震动

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. 数组参数意义:第一个参数为等待指定时间后开始震动,震动时间为第二个参数。后边的参数依次为等待震动和震动的时间
  2. 第二个参数为重复次数,-1为不重复,0为一直震动
取消震动
 vibrator.cancel();//取消震动,立即停止震动

震动为一直震动的话,如果不取消震动,就算退出,也会一直震动

权限

最重要的,增加权限,否则运行时出错


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);
    }
}

你可能感兴趣的:(Androidの 点击按钮Vibrator震动)