Androidの 點(diǎn)擊按鈕Vibrator震動(dòng)

SteamPy,實(shí)現(xiàn)聊天,點(diǎn)擊用戶頭像@功能時(shí)候,需要震動(dòng)提示感.

1. 使用簡(jiǎn)介

初始化獲取Vibrator對(duì)象
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
或者 
vibrator = (Vibrator)getApplication().getSystemService(Service.VIBRATOR_SERVICE);
開始震動(dòng)
1.  vibrator.vibrate(2000); 
  //震動(dòng)指定時(shí)間 ,數(shù)據(jù)類型long,單位為毫秒,一毫秒為1/1000秒
2.  vibrator.vibrate(new long[]{100,10,100,1000}, -1);
 //按照指定的模式去震動(dòng)。
  1. 數(shù)組參數(shù)意義:第一個(gè)參數(shù)為等待指定時(shí)間后開始震動(dòng),震動(dòng)時(shí)間為第二個(gè)參數(shù)。后邊的參數(shù)依次為等待震動(dòng)和震動(dòng)的時(shí)間
  2. 第二個(gè)參數(shù)為重復(fù)次數(shù),-1為不重復(fù),0為一直震動(dòng)
取消震動(dòng)
 vibrator.cancel();//取消震動(dòng),立即停止震動(dòng)

震動(dòng)為一直震動(dòng)的話,如果不取消震動(dòng),就算退出,也會(huì)一直震動(dòng)

權(quán)限

最重要的,增加權(quán)限,否則運(yùn)行時(shí)出錯(cuò)

<uses-permission android:name="android.permission.VIBRATE"/>

2. 案例

震動(dòng)工具類

public class VibrateHelp {
    private static Vibrator vibrator;
    
    /**
     * 簡(jiǎn)單震動(dòng)
     * @param context     調(diào)用震動(dòng)的Context
     * @param millisecond 震動(dòng)的時(shí)間,毫秒
     */
    @SuppressWarnings("static-access")
    public static void vSimple(Context context, int millisecond) {
        vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
        vibrator.vibrate(millisecond);
    }
    
    /**
     * 復(fù)雜的震動(dòng)
     * @param context 調(diào)用震動(dòng)的Context
     * @param pattern 震動(dòng)形式
     * @param repeate 震動(dòng)的次數(shù),-1不重復(fù),非-1為從pattern的指定下標(biāo)開始重復(fù)
     */
    @SuppressWarnings("static-access")
    public static void vComplicated(Context context, long[] pattern, int repeate) {
        vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
        vibrator.vibrate(pattern, repeate);
    }
    
    /**
     * 停止震動(dòng)
     */
    public static void stop() {
        if (vibrator != null) {
            vibrator.cancel();
        }
    }
}

點(diǎn)擊事件類

public class ViewClickVibrate implements OnClickListener{
    /** 按鈕震動(dòng)時(shí)間 */
    private final int VIBRATE_TIME = 60;
    
    
    @Override
    public void onClick(View v) {
        // TODO 根據(jù)設(shè)置中的標(biāo)記判斷是否執(zhí)行震動(dòng)
        VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容