Android Camera预览在大屏幕设备上无法正常工作

时间:2016-02-10 17:15:13

标签: android camera android-camera camera-calibration

我的应用中的相机预览在大屏幕设备(如Nexus 4/5)上无法正常工作,它可以在较小的屏幕设备(如Nexus S)上正常工作。我用宽度和宽度我的应用程序中的高度参数基本上是屏幕大小。如果我手动设置这些参数,应用程序工作正常,但如果我动态计算大小并在应用程序中使用它,相机预览无法正常工作,请参阅下面的图像了解详情:

http://i.imgur.com/LadikBC.png" app nexus 5"

的屏幕截图

activity_main.xml中

<RelativeLayout
        android:id="@+id/containerImg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        >



            <SurfaceView
                android:id="@+id/surfaceView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_centerInParent="true"
                android:scaleType="fitXY"
                />

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:src="@drawable/kitten_2"
                android:adjustViewBounds="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                tools:ignore="ContentDescription"
                android:scaleType="fitXY"
                />

使用以下代码计算屏幕尺寸I&#39; m。我检查代码是否在大屏幕设备上正常工作,值是否准确

DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    height  = displaymetrics.heightPixels;
    width  = displaymetrics.widthPixels;

设置关联布局大小:

RelativeLayout.LayoutParams layoutParams = new             
RelativeLayout.LayoutParams(width,height); 
mImageView.setLayoutParams(layoutParams);
mImageView.setOnTouchListener(this);

设置相机预览尺寸:

if (previewing) {
            camera.stopPreview();
            previewing = false;
        }
        try {
            Camera.Parameters parameters = camera.getParameters();
            parameters.setPreviewSize(width,height);
            parameters.setPictureSize(width,height);

任何帮助表示赞赏。

P.S抱歉英语是我的第二语言。

0 个答案:

没有答案