我的应用中的相机预览在大屏幕设备(如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抱歉英语是我的第二语言。