如何在片段中有效地重启相机 - Barcode Scanner
How to restart camera efficiently in a fragment - Barcode Scanner
我的应用程序中有两个片段,我正在尝试在其中一个片段中使用 ZXingScanner
库来实现条码扫描器。实施工作正常。我的问题基本上与糟糕的设计有关。
当用户扫描有效代码时,会出现一个对话框,提示该代码有效。但是当我关闭对话框时(通过按确定),条形码扫描器停止。为了解决这个问题,我有以下几点:
buttonConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popupView.dismiss();
restartCamera();
}
});
public void restartCamera(){
mScannerView.stopCamera(); //mScannerView = new ZXingScannerView(getActivity());
mScannerView.startCamera();
}
这种方法的问题是,当我切换片段时,相机仍然 运行 落后。当我切换到第一个片段然后将其重新打开并解决此问题时,如何停止相机。
(我正在使用 ViewPager
来实现我的片段)
好的,我终于找到了解决方案。我在我的相机片段中覆盖了我的 setMenuVisibility
方法。如果片段可见调用 restartCamera()
方法,否则停止相机。
@Override
public void setMenuVisibility(final boolean visible){
if (visible){
if (mScannerView != null) {
Log.v("FragmentQR", "Visible");
restartCamera();
}
}
else {
if (mScannerView != null){
mScannerView.stopCamera();
Log.v("FragmentQR","InVisible");
}
}
我的应用程序中有两个片段,我正在尝试在其中一个片段中使用 ZXingScanner
库来实现条码扫描器。实施工作正常。我的问题基本上与糟糕的设计有关。
当用户扫描有效代码时,会出现一个对话框,提示该代码有效。但是当我关闭对话框时(通过按确定),条形码扫描器停止。为了解决这个问题,我有以下几点:
buttonConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popupView.dismiss();
restartCamera();
}
});
public void restartCamera(){
mScannerView.stopCamera(); //mScannerView = new ZXingScannerView(getActivity());
mScannerView.startCamera();
}
这种方法的问题是,当我切换片段时,相机仍然 运行 落后。当我切换到第一个片段然后将其重新打开并解决此问题时,如何停止相机。
(我正在使用 ViewPager
来实现我的片段)
好的,我终于找到了解决方案。我在我的相机片段中覆盖了我的 setMenuVisibility
方法。如果片段可见调用 restartCamera()
方法,否则停止相机。
@Override
public void setMenuVisibility(final boolean visible){
if (visible){
if (mScannerView != null) {
Log.v("FragmentQR", "Visible");
restartCamera();
}
}
else {
if (mScannerView != null){
mScannerView.stopCamera();
Log.v("FragmentQR","InVisible");
}
}