我有这个代码用于创建相机预览来扫描二维码,但不起作用:
try {
c = ((Class<? extends Controllo>) getIntent().getExtras().get("ctrl")).newInstance();
} catch (Exception e) {
Log.w("Error", e.toString());
throw new RuntimeException(e.getMessage());
}
autoFocusHandler = new Handler();
mCamera = getCameraInstance();
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
FrameLayout preview = (FrameLayout)findViewById(com.x720.qrscanner.R.id.cameraPreview);
Camera.Parameters parameters = mCamera.getParameters();
Boolean trovatoParam = false;
int minValWidth = 0;
int minValHeight = 0;
for (Camera.Size previewSize: mCamera.getParameters().getSupportedPreviewSizes())
{
Log.e("SIZE", previewSize.width+" - " +previewSize.height);
Log.e("SCHERMO", size.y+" - "+size.x);
if(previewSize.width > minValWidth && previewSize.height > minValHeight && previewSize.width <= size.y && previewSize.height <= size.x) {
parameters.setPreviewSize(previewSize.width, previewSize.height);
Log.e("-------------SELEZIONO", previewSize.width+"");
trovatoParam = true;
minValWidth = previewSize.width;
minValHeight = previewSize.height;
}
}
if(trovatoParam == true)
mCamera.setParameters(parameters);
/* Instance barcode scanner */
scanner = new ImageScanner();
scanner.setConfig(0, Config.X_DENSITY, 3);
scanner.setConfig(0, Config.Y_DENSITY, 3);
scanner.setConfig(0, Config.ENABLE, 0);
// only enable QRCODE
scanner.setConfig(Symbol.QRCODE, Config.ENABLE, 1);
mPreview = new CameraPreview(this, mCamera, previewCb, autoFocusCB);
preview.addView(mPreview);这是为了得到他的相机:
public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open();
} catch (Exception e){
}
return c;
}我的问题是相机预览没有填满整个屏幕,但我有一个很大的顶部边框。我用的是galaxy s8+。很抱歉我的英语不好
问题图片:

发布于 2018-03-28 20:38:38
1)如果你的容器的宽度和高度作为匹配的父元素,它肯定会填满屏幕。检查framelayout是否在任何其他布局中?
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>2)如果您在Frame Layout之外使用Relative layout,请将其更改为线性布局
3)或者尝试使用SurfaceView而不是FrameLayout。
请检查并让我知道..祝你好运。
https://stackoverflow.com/questions/49533467
复制相似问题