Android mediacontroller隐藏时,Videoview如何全屏显示?

Android mediacontroller隐藏时,Videoview如何全屏显示?,android,android-videoview,mediacontroller,Android,Android Videoview,Mediacontroller,这是我的活动,它正在发挥作用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_playing); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); getWindow().setFlag

这是我的活动,它正在发挥作用

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_playing);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    Intent intent = getIntent();
    String link = intent.getStringExtra("link");

    VideoView videoview = (VideoView) findViewById(R.id.videoView2);
    MediaController mediacontroller = new MediaController(this);
    mediacontroller.setAnchorView(videoview);
    Log.i("Link",link);
    Uri video = Uri.parse(link);
    videoview.setMediaController(mediacontroller);
    videoview.requestFocus();
    videoview.setVideoURI(video);
    videoview.start();
}
这是播放时的屏幕:

但当控制器隐藏时,视频屏幕不是全屏。


当mediacontroller隐藏时,Videoview如何全屏显示?

我认为您可以在下面创建myMediaController来触发mediacontroller的隐藏并刷新Videoview

class myMediaController extends  MediaController{

    private View anchorView = null; //this ref to videoview from setAnchorView(View view)
    public myMediaController(Context context, boolean useFastForward) {
        super(context, useFastForward);
    }

    @Override
    public void setAnchorView(View view) {
        super.setAnchorView(view);

        anchorView = view;
    }

    @Override
    public void hide() {
        super.hide();
        anchorView.invalidate(); //refresh with and height of video view on screen
        anchorView.refreshDrawableState(); 
    }
}