android zxing 自动对焦,ZXing自动对焦问题
Pavel Bobkov..
5
我在Samsung Galaxy Grand 2(Android 4)上遇到了同樣的問題,并且找到了一個解決方案。啟動相機之前,我禁用了自動對焦功能。1-2秒后,我啟用了它。我嘗試了幾種方法,并決定定期切換自動對焦功能。為了實現這一點,我創建了util類-FocusHandler。
public class FocusHandler implements Runnable{
private final int FOCUS_OFF_TIME = 2000;
private final int FOCUS_ON_TIME = 20000;
private boolean flag = false;
private boolean state = false;
private Handler handler;
private WeakReference scannerView;
public FocusHandler(Handler handler, ZXingScannerView scannerView){
this.handler = handler;
this.flag = false;
this.scannerView = new WeakReference<>(scannerView);
}
public void start(){
state = true;
this.handler.post(this);
}
public void stop(){
state = false;
scannerView.clear();
}
@Override
public void run() {
if (!state || this.scannerView.get() == null){
return;
}
int time;
if (!flag){
this.scannerView.get().setAutoFocus(flag);
time = FOCUS_OFF_TIME;
}
else{
this.scannerView.get().setAutoFocus(flag);
time = FOCUS_ON_TIME;
}
flag = !flag;
handler.postDelayed(this, time);
}
}
/ ***************活動****************** /
private ZXingScannerView scannerView;
private FocusHandler focusHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scanner);
scannerView = new ZXingScannerView(this);
focusHandler = new FocusHandler(new Handler(), scannerView);
frameLayout.addView(scannerView);
}
@Override
protected void onResume() {
super.onResume();
scannerView.setResultHandler(this);
scannerView.setAutoFocus(false);
scannerView.startCamera();
focusHandler.start();
}
@Override
public void onPause() {
super.onPause();
scannerView.stopCamera();
focusHandler.stop();
}
總結
以上是生活随笔為你收集整理的android zxing 自动对焦,ZXing自动对焦问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rust腐蚀怎么单人游戏_腐蚀游戏怎么提
- 下一篇: mysql连接不上怎么重置密码错误_My