新增 AspectRatioCameraConfig 和 ResolutionCameraConfig
This commit is contained in:
@@ -4,7 +4,6 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Size;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ScaleGestureDetector;
|
||||
import android.view.View;
|
||||
@@ -16,6 +15,7 @@ import com.google.zxing.ResultPoint;
|
||||
import com.google.zxing.common.detector.MathUtils;
|
||||
import com.king.zxing.analyze.Analyzer;
|
||||
import com.king.zxing.analyze.MultiFormatAnalyzer;
|
||||
import com.king.zxing.config.CameraConfig;
|
||||
import com.king.zxing.manager.AmbientLightManager;
|
||||
import com.king.zxing.manager.BeepManager;
|
||||
import com.king.zxing.util.LogUtils;
|
||||
@@ -98,7 +98,6 @@ public class DefaultCameraScan extends CameraScan {
|
||||
private boolean isClickTap;
|
||||
private float mDownX;
|
||||
private float mDownY;
|
||||
private Size mTargetSize;
|
||||
|
||||
public DefaultCameraScan(@NonNull FragmentActivity activity,@NonNull PreviewView previewView){
|
||||
this.mFragmentActivity = activity;
|
||||
@@ -155,23 +154,6 @@ public class DefaultCameraScan extends CameraScan {
|
||||
mScreenHeight = displayMetrics.heightPixels;
|
||||
|
||||
LogUtils.d(String.format("displayMetrics:%dx%d",mScreenWidth,mScreenHeight));
|
||||
//因为为了保持流畅性和性能,限制在1080p,在此前提下尽可能的找到屏幕接近的分辨率
|
||||
if(mScreenWidth < mScreenHeight){
|
||||
float ratio = mScreenWidth / (float)mScreenHeight;
|
||||
if(ratio > 0.7){//一般应用于平板
|
||||
mTargetSize = new Size(mScreenWidth,mScreenWidth / 3 * 4);
|
||||
}else{
|
||||
mTargetSize = new Size(mScreenWidth,mScreenWidth / 9 * 16);
|
||||
}
|
||||
}else{
|
||||
float ratio = mScreenHeight / (float)mScreenWidth;
|
||||
if(ratio > 0.7){//一般应用于平板
|
||||
mTargetSize = new Size(mScreenHeight / 3 * 4, mScreenHeight);
|
||||
}else{
|
||||
mTargetSize = new Size(mScreenHeight / 9 * 16, mScreenHeight);
|
||||
}
|
||||
}
|
||||
LogUtils.d("targetSize:" + mTargetSize);
|
||||
|
||||
mBeepManager = new BeepManager(mContext);
|
||||
mAmbientLightManager = new AmbientLightManager(mContext);
|
||||
@@ -250,8 +232,7 @@ public class DefaultCameraScan extends CameraScan {
|
||||
mCameraProviderFuture.addListener(() -> {
|
||||
|
||||
try{
|
||||
Preview preview = mCameraConfig.options(new Preview.Builder()
|
||||
.setTargetResolution(mTargetSize));
|
||||
Preview preview = mCameraConfig.options(new Preview.Builder());
|
||||
|
||||
//相机选择器
|
||||
CameraSelector cameraSelector = mCameraConfig.options(new CameraSelector.Builder());
|
||||
@@ -260,7 +241,6 @@ public class DefaultCameraScan extends CameraScan {
|
||||
|
||||
//图像分析
|
||||
ImageAnalysis imageAnalysis = mCameraConfig.options(new ImageAnalysis.Builder()
|
||||
.setTargetResolution(mTargetSize)
|
||||
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST));
|
||||
imageAnalysis.setAnalyzer(Executors.newSingleThreadExecutor(), image -> {
|
||||
if(isAnalyze && !isAnalyzeResult && mAnalyzer != null){
|
||||
|
||||
Reference in New Issue
Block a user