【问题标题】:How can I change speed of flashing directly with seekbar in Android App?如何在 Android App 中使用 seekbar 直接更改闪烁速度?
【发布时间】:2017-08-11 14:27:43
【问题描述】:

我制作了手电筒安卓应用,并制作了搜索栏来改变闪烁的速度。但是速度的变化直到我按下中间的按钮打开和关闭闪光灯才反映,我github link attached below如何直接从seekbar改变速度

【问题讨论】:

    标签: java android


    【解决方案1】:
    1. StroboRunner 使用它自己的频率,而不是全局频率。所以,你需要重启线程。

      @Override
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
          freq = progress;
          turnOnOff(powerButton.isChecked());
      }
      


    2. 而且,在您的源代码中,有多个线程未终止。 检查“this”评论。

    private void turnOnOff(boolean on) {

        if (on) {
            if (freq != 0) {
                sr = new StroboRunner();
                sr.freq = freq;
    
                if (t != null) {
                    t.interrupt(); // this. kill previous thread.
                }
    
                t = new Thread(sr);
                t.start();
                return;
            } else
                params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        }
    
        if (!on) {
            if (t != null) {
                sr.stopRunning = true;
                t.interrupt(); // this
                t = null;
                return;
            } else
                params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
        }
    
        camera.setParameters(params);
        camera.startPreview();
    }
    

    【讨论】:

    • 好的,这个改变速度的搜索栏是正确的,但是电源按钮失去了它的功能。在闪烁的同时按下电源按钮时,灯亮并且按钮关闭,当将搜索栏移动到 0 级并按下电源按钮时,灯仍然亮着,直到我再次按下电源按钮
    • @hsalama,好吧,提出一个新问题怎么样?或者,您可以在进度为零时实现关灯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2013-01-21
    相关资源
    最近更新 更多