我正在视频中显示视频:
在我的XML中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center"
android:layout_height="fill_parent">
<VideoView
android:layout_gravity="center"
android:id="@+id/videoview_player"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
看起来这很完美。视频会自行调整大小以使屏幕显示,而视频仍保持宽高比。
但是在平板电脑上,在纵向30-60秒之后,视频会延伸到全屏。 (它不保持纵横比,它拉伸高度)
像这样:
答案 0 :(得分:0)
我最终继承了VideoView:
public class PlayerVideoView extends VideoView{
private int mForceHeight = 0;
private int mForceWidth = 0;
public PlayerVideoView(Context context) {
super(context);
}
public PlayerVideoView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public PlayerVideoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setDimensions(int w, int h) {
this.mForceHeight = h;
this.mForceWidth = w;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(mForceWidth, mForceHeight);
}
}
onCreate中我在哪里设置尺寸
videoView.setDimensions(800, 600);
然后在
@Override
public void onConfigurationChanged(Configuration newConfig) {..}
我手动设置纵向或横向尺寸,具体取决于用户设备方向。