有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中的java手电筒闪烁按钮点击

我正在开发一个手电筒应用程序,在这个应用程序中,我试图在点击按钮时添加闪烁功能。我找到的代码是:

String myString = "0101010101";
long blinkDelay 50; //Delay in ms
for (int i = 0; i < myString.length(); i++) {
   if (myString.charAt(i) == '0') {
      params.setFlashMode(Parameters.FLASH_MODE_ON);
   } else {
      params.setFlashMode(Parameters.FLASH_MODE_OFF);
   }
   try {
      Thread.sleep(blinkDelay);
   } catch (InterruptedException e) {
      e.printStackTrace();
   }
}

但是这个代码会在眨眼几下后关闭手电筒。我怎样才能启动手电筒闪烁按钮点击,并停止它,除非我再次点击它?有什么帮助吗


共 (3) 个答案

  1. # 1 楼答案

    • 你必须使用一个独立的线程来防止UI冻结
    • 线程将包含一个while循环,该循环允许线程持续闪烁
    • 要在按钮上断开循环,请在while条件下使用布尔变量

    希望有帮助

  2. # 2 楼答案

    它由字符串长度控制,因此在i的计数大于最后一个索引后,for循环将中断。 如果你想持续闪烁闪光灯,可以使用while循环。 您可以使用一个布尔变量在开关之间切换。 在while条件中使用一个布尔值,以在单击按钮时中断循环

  3. # 3 楼答案

    必须使用线程来防止UI冻结 线程将包含一个while循环,允许它持续闪烁

     while (shouldGlow ) {
              flashLight();
              try {
                  Thread.sleep(1000);
              } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
    
      }
    

    //使用布尔变量来停止循环