如何获取活动中包含的VideoView的高度

Pra*_*ela 1 android mediacontroller android-videoview

我需要在android中获取我的活动的VideoView的高度,我使用以下命令,但它给了我高度为0.

VideoView vv = (VideoView)findViewById(R.id.video1);
String surl="SOME_LINK.mp4";
        Uri uri=Uri.parse(surl);
        MediaController mc = new MediaController(this);
        vv.setVideoURI(uri);
        vv.setMediaController(mc);
        mc.setMediaPlayer(vv);
        mc.setAnchorView(vv);
        int vvHeight=vv.getMeasuredHeight();
        Log.d("VideoView Height:",vvHeight+""); // The Logcat output : 0.
        int VVheight=vv.getHeight();
        Log.d("The Height of VideoView is :",VVheight+""); // The Logcat output : 0
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我犯了什么错误.

Hem*_*nth 6

您正在尝试在绘制视图之前获取宽度/高度.

试试这个:

vv.post(new Runnable() { 
@Override
  public void run() {
    // get height and width here
  }
});
Run Code Online (Sandbox Code Playgroud)

view.post(Runnable)导致runnable被添加到消息队列中.runnable将在UI线程上运行.

  • 我投票给你的答案是建议Runnable选项,并能够证明这个选择是正确的.谢谢. (2认同)