如果你想降低振动,你需要创建一个中间有空格的图案。
使用如下常量:
int dot = 200;
int short_gap = 200; // Length of Gap
然后定义数组和模式:
long[] pattern = {
0, // Start immediately
dot, short_gap };
然后你可以打电话:
v.vibrate(pattern, x);
// x value:
// 0 repeat infinite
// -1 no repeat
// n number of repetitions
通过改变点和间隙的长度(或定义新的以执行各种模式),您可以调节振动的力量。
EDIT1:这是我的VibrationConstants.java
public class VibrationConstants {
private static int p = 5; // five millisecond of vibration
private static int s = 5; // five millisecond of break - could be more to
// weaken
// the vibration
private static int pp = 10; // ten millisecond of vibration
private static int ss = 10; // ten millisecond of break - could be more to
// weaken
// the vibration
private static int ppp = 50; // fifty millisecond of vibration
private static int sss = 50; // fifty millisecond of break - could be more to
// weaken
// the vibration
public static long[] HARD_VIBRATION = { 0, ppp, sss };
public static long[] MIDDLE_VIBRATION = { 0, pp, ss };
public static long[] SOFT_VIBRATION_2 = { 0, p, s };
public static long[] PATTERN_VIBRATION = { 0, 250, 200, 250, 150, 150, 75,
150, 75, 150 };
}
所以,当你想调用它时:
v.vibrate(VibrationConstants.SOFT_VIBRATION_2, x);
// x value:
// 0 repeat infinite
// -1 no repeat
// n number of repetitions
如果振动和断裂值相同的结果不如您预期的那样准确,也可以尝试仅更改断裂值。这会产生很好的效果。:)
希望有帮助,我试图从谷歌三星或 Xperia 等手机品牌中找到模式,但我找不到它......所以我们用这些模式模拟了很好的结果,但这一切都取决于你的要求。
我相信你必须做一些测试才能达到你的目标,但并不难。