
按照本教程(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的摄像头?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)