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)。
- 數(shù)組參數(shù)意義:第一個(gè)參數(shù)為等待指定時(shí)間后開始震動(dòng),震動(dòng)時(shí)間為第二個(gè)參數(shù)。后邊的參數(shù)依次為等待震動(dòng)和震動(dòng)的時(shí)間
- 第二個(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);
}
}