SOS 手电筒 - 如何
SOS flashlight - How to
我做了一个手电筒应用程序,现在我想添加 sos 莫尔斯电码闪烁。这是我的代码,但效果不是很好,它闪烁得太快,所以我需要一些延迟,有人可以帮忙吗?
public void sos(View v) {
String myString = "111000111";
Handler handler = new Handler();
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
}, 300);
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, 300);
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, 300);
}
}
}
注意:我不是应用程序程序员,但这里是 Thread.sleep() 的示例。祝你好运。
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
Thread.sleep(300);
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
第二次拍摄。假设你真的不能让主线程休眠,试试这个:
int delay=0;
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
}, (delay+=300));
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, (delay+=300));
}
}
我做了一个手电筒应用程序,现在我想添加 sos 莫尔斯电码闪烁。这是我的代码,但效果不是很好,它闪烁得太快,所以我需要一些延迟,有人可以帮忙吗?
public void sos(View v) {
String myString = "111000111";
Handler handler = new Handler();
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
}, 300);
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, 300);
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, 300);
}
}
}
注意:我不是应用程序程序员,但这里是 Thread.sleep() 的示例。祝你好运。
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
Thread.sleep(300);
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
第二次拍摄。假设你真的不能让主线程休眠,试试这个:
int delay=0;
for (int x = 0; x < myString.length(); x++) {
if (myString.charAt(x) == '1') {
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
}
}, (delay+=300));
handler.postDelayed(new Runnable() {
public void run() {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
}
}, (delay+=300));
}
}