zoukankan      html  css  js  c++  java
  • Android 4.1 VIBRATE and HapticFeedback


    4.1的震子变成一个服务,调用方式有所变化:

    private static final int VIBRATE_DURATION = 15;
    private Vibrator mVibrator;
    mVibrator = (Vibrator) launcher.getSystemService(Context.VIBRATOR_SERVICE);
    mVibrator.vibrate(VIBRATE_DURATION);
    //以前的用法如下:
    private Vibrator mVibrator = new Vibrator();
    mVibrator.vibrate(VIBRATE_DURATION);
    //END
    

    一般也可以利用view的HapticFeedback来实现触摸点击反馈:

    v.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS,
                            HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); 

    该参数在设置的声音选项触摸时振动设置并存储为系统数据,view在刷新绘制时会获取该值然后进行振动回馈。

    有时候需要定制一个view的振动强度这时候我们可以两者搭配使用:

    public void performVibrate(int adjustment){	
    		int val = new Settings.System().getInt(getContentResolver(),Settings.System.HAPTIC_FEEDBACK_
    			ENABLED,0);	
           if (DEBUG_WIDGETS) {	
               Log.d(TAG,"-----performVibrate for onLongClick----" + val);
           }	
           if (val != 0){
               mVibrator.vibrate(VIBRATE_DURATION + adjustment);	
           }	
        }
    定制化view的振动时需要关闭它自身的HapticFeedback,不然会出现振动时间和设值不一致的情况:

    launcher.setupViews:mWorkspace.setHapticFeedbackEnabled(false);
    AppsCustomizePagedView.syncAppsPageItems:icon.setHapticFeedbackEnabled(false);
    



  • 相关阅读:
    HashMap(HashSet)的实现
    C/C++ 安全编码 —— 指针与内存
    AlexNet神经网络结构
    查看,修改动态组成员/通讯组
    刷新已禁用用户邮箱状态
    监控DAG状态
    AD诊断命令
    PowerShell管理Exchange
    TCP连接(Time_Wait、Close_Wait)说明
    IIS配置(安装IIS、.Net、更改IIS Log目录位置)
  • 原文地址:https://www.cnblogs.com/aaa2832/p/3594754.html
Copyright © 2011-2022 走看看