Android:视频延伸了方向变化

时间:2012-11-09 12:28:14

标签: android orientation android-videoview

我正在视频中显示视频:

在我的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秒之后,视频会延伸到全屏。 (它不保持纵横比,它拉伸高度)

像这样:

enter image description here

1 个答案:

答案 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) {..}

我手动设置纵向或横向尺寸,具体取决于用户设备方向。