需要在CameraX for Android中添加网格线

问题描述

需要将网格添加到Custome Camera模块中的CameraX API。我们已经使用PreviewView来显示Camera流。还创建了从PreviewView扩展的CustomePreviewView,以绘制网格线。但是在相机预览开始流式传输之前,该网格线暂时可见。

公共类CustomePreviewView扩展了PreviewView {

public CustomePreviewView(@NonNull Context context) {
    super(context);
    this.setWillNotDraw(false);
}

public CustomePreviewView(@NonNull Context context,@Nullable AttributeSet attrs) {
    super(context,attrs);
    this.setWillNotDraw(false);
}

public CustomePreviewView(@NonNull Context context,@Nullable AttributeSet attrs,int defStyleAttr) {
    super(context,attrs,defStyleAttr);
    this.setWillNotDraw(false);
}

public CustomePreviewView(@NonNull Context context,int defStyleAttr,int defStyleRes) {
    super(context,defStyleAttr,defStyleRes);
    this.setWillNotDraw(false);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
    int screenWidth = metrics.widthPixels;
    int screenHeight = (int) (metrics.heightPixels*0.9);

    //  Set paint options
    Paint paint =  new Paint();
    paint.setAntiAlias(true);
    paint.setStrokeWidth(3);
    paint.setStyle(Paint.Style.STROKE);
    paint.setColor(Color.argb(255,255,255));

    canvas.drawLine((screenWidth/3)*2,(screenWidth/3)*2,screenHeight,paint);
    canvas.drawLine((screenWidth/3),(screenWidth/3),paint);
    canvas.drawLine(0,(screenHeight/3)*2,screenWidth,(screenHeight/3),paint);
}

}

及以下是setPreview用例。

private Preview setPreview() {
        Rational aspectRatio = new Rational(previewView.getWidth(),previewView.getHeight());
        Size screen = new Size(previewView.getWidth(),previewView.getHeight()); //size of the scree
        if(preview!=null) {
            preview.clear();
        }
        preview = new Preview.Builder().setTargetResolution(screen).setTargetAspectRatioCustom(aspectRatio).build();
        preview.setSurfaceProvider(previewView.createSurfaceProvider());
        return preview;
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...