如何在Android App中使用seekbar直接更改闪烁速度?

时间:2017-08-11 02:39:56

标签: java android

我制作手电筒Android应用程序,我制作了搜索栏来改变闪烁的速度。但是直到我按下中间的按钮打开和关闭闪光灯才能反映出速度的变化,我怎么能github link attached below直接从搜索栏改变速度

1 个答案:

答案 0 :(得分:0)

  1. StroboRunner使用它自己的频率,而不是全局频率。所以,你需要重新启动线程。

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


  2. 并且,在您的源代码中,有多个未终止的线程。 检查"这个"评价。
  3. 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();
    }