美文网首页android技术
Androidの 点击按钮Vibrator震动

Androidの 点击按钮Vibrator震动

作者: SteamPY | 来源:发表于2021-05-08 14:02 被阅读0次

    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();//取消震动,立即停止震动
    

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

    权限

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

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

    相关文章

      网友评论

        本文标题:Androidの 点击按钮Vibrator震动

        本文链接:https://www.haomeiwen.com/subject/fceudltx.html