Android Studio中CameraX 帧大小

px && dp

安卓开发中获取控件的大小,使用.getHeight(),.getWidth(),获取到的数值单位是像素(px)
画图bitmap获取大小同使用.getHeight(),.getWidth(),但是获取到的是像素密度(dp)
两者的关系为:像素密度 * dpi = 像素
dpi(每英寸密度)可以通过以下代码获得(Java):

// mContext在onCreate中创建表示本activity
float dpi = mContext.getResources().getDisplayMetrics().density;

CameraX的ImageAnalysis 输出帧

继承ImageAnalysis.Analyzer发现图片大小始终为480、640,打开ImageAnalysis源码有:

private static final Size DEFAULT_TARGET_RESOLUTION = new Size(640, 480);
private static final Size DEFAULT_MAX_RESOLUTION = new Size(1920, 1080);

网上说设置大小方式:

//设置宽高比
ImageAnalysis.Builder().setTargetAspectRatio(AspectRatio.RATIO_16_9)
//设置实际的尺寸
ImageAnalysis.Builder().setTargetResolution(Size(1920, 1080))

尝试并没有改变,还没有想到方式,暂时按照源码大小比例480:640(即3:4)调整自己的布局

<ImageView
    android:id="@+id/imageView"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    app:layout_constraintDimensionRatio="h,4:3"