Android4.4 如何控制闪光灯

        最近刚开始学习Android应用开发,最近突然想写一个简洁的手电筒程序自用,通过网上的示例让我很轻松的写出了一个简单的小程序,只有简单的开关闪光灯的功能,通过Camera控制的闪光灯,相信大家都可以很容易的在网上看到相关代码,这里就不进行赘述了。如果你碰到了在4.4的手机上无法开启闪光灯的问题,那这篇文章或许可以帮助你。如果不会通过Camera控制的闪光灯,可以去下面链接看一下这里

        我把程序部署到我4.4的手机上时,发现无法打开闪光灯,检查了程序后,没有发现错误。于是换了一台4.2的手机,可以正常使用开关闪光灯的功能。试图在网上找寻答案,结果没有成功。于是我就去看Google文档。

        在Camera类下,我看到了一条有用的信息:

        Important: Pass a fully initialized SurfaceHolder to setPreviewDisplay(SurfaceHolder). Without a surface, the camera will be unable to start the preview.

        网上提供的方法中没有进行设置SurfaceHolder,会不会是这个原因呢?

        于是我在布局文件中加入了一个SurfaceView

1     <SurfaceView 
2         android:id="@+id/test"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"/>

        在代码中的相关位置加入相关代码

        surfaceview = (SurfaceView) findViewById(R.id.test);        
     ViewGroup.LayoutParams localLayoutParams = surfaceview.getLayoutParams(); localLayoutParams.width = 1; localLayoutParams.height = 1; surfaceview.setLayoutParams(localLayoutParams); surfaceview.setZOrderOnTop(true); surfaceview.setBackgroundColor(-2); holder = surfaceview.getHolder(); holder.addCallback(this); holder.setFormat(-2);
        try {
            mCamera.setPreviewDisplay(this.holder);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    

        重新部署后,发现成功开启了闪光灯。顺利解决了这个小问题。


转载于:https://www.cnblogs.com/Deathrageous/p/3555293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值