android-在片段中,如何停止ZXing Scanner的摄像头?

android-在片段中,如何停止ZXing Scanner的摄像头?,第1张

概述按照本教程(http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/),我制作了带有片段和ViewPager的Android选项卡.到目前为止,我向其中一个片段添加了QR码扫描仪(使用基于ZXing的条形码扫描仪库),并且工作正常.问题是当我转到其他选项卡(片段)时,摄像机本身

按照本教程(http://www.truiton.com/2015/06/android-tabs-example-fragments-viewpager/),我制作了带有片段和VIEwPager的AndroID选项卡.到目前为止,我向其中一个片段添加了QR码扫描仪(使用基于ZXing的条形码扫描仪库),并且工作正常.

问题是当我转到其他选项卡(片段)时,摄像机本身仍在内部工作(内部摄像机不会停止).因此,即使我在屏幕上看不到相机的不同片段,当我将手机(相机部件)放置在QR码附近时,它也会读取并开始新的活动.

那么当我去其他片段时如何停止相机?

这是我的QR码扫描仪的片段.

public class TabFragment1 extends Fragment implements ZXingScannerVIEw.ResultHandler{   private ZXingScannerVIEw mScannerVIEw;   private linearLayout qrCameraLayout;   @OverrIDe   public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState)   {      VIEw v = inflater.inflate(R.layout.tab_fragment_1, container, false);      qrCameraLayout = (linearLayout) v.findVIEwByID(R.ID.ll_qrcamera);      mScannerVIEw = new ZXingScannerVIEw(getActivity().getApplicationContext());      mScannerVIEw.setLayoutParams(new linearLayout.LayoutParams(         linearLayout.LayoutParams.MATCH_PARENT,         linearLayout.LayoutParams.MATCH_PARENT));      qrCameraLayout.addVIEw(mScannerVIEw);      List<barcodeFormat> formats = new ArrayList<>();      formats.add(barcodeFormat.QR_CODE);      mScannerVIEw.setFormats(formats);      return v;   }   @OverrIDe   public voID onResume()   {      super.onResume();      mScannerVIEw.setResultHandler(this); // Register ourselves as a handler for scan results.      mScannerVIEw.startCamera();          // Start camera on resume   }   @OverrIDe   public voID onPause()   {      super.onPause();      mScannerVIEw.stopCamera();   }   @OverrIDe   public voID handleResult(final Result result)   {      //handling results   }

解决方法:

我尝试了一些方法来解决此问题,最后得到了解决方案.

public voID handleResult(Result result) {        //Hold result        Log.e("handler", result.getText()); // Prints scan results        Log.e("handler", result.getbarcodeFormat().toString()); // Prints the scan format (qrcode)        mScannerVIEw.removeAllVIEws(); //<- here remove all the vIEws, it will make an Activity having no VIEw        mScannerVIEw.stopCamera(); //<- then stop the camera        setContentVIEw(R.layout.activity_Main); //<- and set the VIEw again.        final String vString = result.getText();        runOnUiThread(new Runnable() {            @OverrIDe            public voID run() {                Toast.makeText(mContext,vString,Toast.LENGTH_LONG).show();            }        });        // to resume scanning        // mScannerVIEw.resumeCameraPrevIEw(this);<br />    }}

再次设置ContentVIEw解决了m的问题

总结

以上是内存溢出为你收集整理的android-在片段中,如何停止ZXing Scanner的摄像头?全部内容,希望文章能够帮你解决android-在片段中,如何停止ZXing Scanner的摄像头?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1090824.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存