SurfaceView全屏铺满的方法
SurfaceView用来播放视频时,父view设定了固定高度,那全屏时不同的设备,有的设备可能就出现白边,无法铺满。如
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:gravity="center_horizontal">
<SurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
常规做法是强制横屏,隐藏状态栏导航栏,隐藏其他元素,然后手动设置SurfaceView占满。如
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
player.setLayoutParams(layoutParams);
但是到平板电脑等设备上就出现有白边的情况。
这个时候需要手动指定父类的高度或者宽度,suifacebview就自动全屏铺满了。如:
DisplayMetrics dm = new DisplayMetrics();
android.view.ViewGroup.LayoutParams parView =cameraMainLayout.getLayoutParams();
parView.height =dm.widthPixels;
cameraMainLayout.setLayoutParams(parView);
还没有评论,来说两句吧...