首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在安卓系统中打开/关闭闪光灯?

如何在安卓系统中打开/关闭闪光灯?
EN

Stack Overflow用户
提问于 2012-12-21 20:42:24
回答 3查看 4.9K关注 0票数 2

我如何使闪烁闪光灯打开/关闭?我尝试了这个for循环,但没有work...freeze…为什么?需要警报管理器?线程可运行的帖子延迟了?

代码语言:javascript
运行
复制
 for(int i=0;i<5;i++){
    flashon();
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    flashoff();
    }       
 }

   public void flashon(){
   camera = Camera.open();
   Parameters p = camera.getParameters();
   p.setFlashMode(Parameters.FLASH_MODE_TORCH);
   camera.setParameters(p);
   camera.startPreview();
}
EN

回答 3

Stack Overflow用户

发布于 2012-12-21 21:10:37

您需要使用Handler

代码语言:javascript
运行
复制
Handler handler;
boolean isFlashon=false;
handler = new Handler();
    handler.removeCallbacks(toggleFlash);
    handler.postDelayed(toggleFlash, 1000 * 60);

代码语言:javascript
运行
复制
private Runnable toggleFlash = new Runnable() {
    public void run() {
        if(isFlashon)
        {
            //do Flash off
            isFlashon=false;
        }
        else
        {
            //do Flash on
            isFlashon=true;
        }
        handler.postDelayed(this, 1000 * 60);
    }
};
票数 2
EN

Stack Overflow用户

发布于 2017-03-28 15:47:02

尝试遵循code.It将工作,因为我也遇到了类似的情况,下面的代码对我有效。

代码语言:javascript
运行
复制
 private boolean isFlashOn;
 private Camera camera;
 Parameters params;

 private void turnOnFlash() {
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;


    }

}

private void turnOffFlash() {
    if (isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        camera.stopPreview();
        isFlashOn = false;

    }
}

 public void flash_effect() throws InterruptedException
{

    Thread a = new Thread()
    {
        public void run()
        {
          for(int i =0; i < 50; i++)
            {

                turnOnFlash();
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                turnOffFlash();
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {

                    e.printStackTrace();
                }

            }
        }
    };

    a.start();
}
票数 1
EN

Stack Overflow用户

发布于 2012-12-21 20:48:11

1.打开

代码语言:javascript
运行
复制
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

  1. 关闭

代码语言:javascript
运行
复制
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();

并且,在AndroidManifest.xml上添加以下权限。

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

请看这个http://www.mkyong.com/android/how-to-turn-onoff-camera-ledflashlight-in-android/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13990424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档