目前我正在开发一款可以震动摩尔斯电码的应用程序。
我正在使用此代码来振动模式:
int dot = 100;
int dash = 220;
int short_gap = 200;
int medium_gap = 700;
s = new long[] {0, dot, short_gap, dash, medium_gap}
Vibrator vibrator;
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(s, -1);
如何添加指示符以指示我的应用程序是在振动点还是短划线?
我知道我可以使用for循环横向long[]
,然后使用if else语句更改textview背景颜色以指示模式的更改。但是如何让for循环保持在每次变化的振动ms内?
答案 0 :(得分:1)
dot = new long[] {200, 100};
dash = new long[] {700, 220};
String s = "01";
for (int i = s.length() - 1, i >= 0, i--) {
if (s.charAt(i) == "0") {
// CHANGE TEXTVIEW HERE
vibrator.vibrate(dot, -1);
}
else {
vibrator.vibrate(dash, -1);
}
}
因为在vibrate
之前执行代码需要几毫秒才能启动振动器,如果您想要准确,可能需要相应缩短时间。
顺便说一句,根据api,您的原始代码应为
s = new long[] { short_gap, dot, medium_gap, dash}