这非常接近你想要的。如果你愿意子类化VideoView并且在此覆盖onMeasure
,那么这就是解决方案。你需要
MyVideoView extends VideoView
https://dev59.com/p2855IYBdhLWcg3wSSKl#4452597
关于如何在VidowView上方显示MediaController
声明
private MediaController controller = null
OnCreate
controller = new MediaController(this)
controller.setMediaPlayer(mcEvents)
controller.setAnchorView(findViewById(R.id.wrapper))
活动
@Override
public boolean onTouchEvent(MotionEvent event) {
controller.show();
return false;
}
媒体控制器事件
private MediaController.MediaPlayerControl mcEvents = new MediaController.MediaPlayerControl() {
public void start() {
player.start();
}
public void seekTo(int pos) {
player.seekTo(pos);
}
public void pause() {
player.pause();
}
public boolean isPlaying() {
return player.isPlaying();
}
public int getDuration() {
return player.getDuration();
}
public int getCurrentPosition() {
return player.getCurrentPosition();
}
public int getBufferPercentage() {
return pBuffer;
}
public boolean canSeekForward() {
return true;
}
public boolean canSeekBackward() {
return true;
}
public boolean canPause() {
return true;
}
};
一个示例布局文件。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wrapper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.my.views.MyViedoView
android:id="@+id/player"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</FrameLayout>