如何用android:layout_width =“wrap_content”获取视图像素的宽度?

时间:2010-08-19 09:17:54

标签: android xml layout height width

我有视图,其中有layout_width =“wrap_content”。如果我在代码中使用view.getWidth(),它返回0. :-( 如何将视图“wrap_content”的宽度转换为像素?

4 个答案:

答案 0 :(得分:4)

您可以尝试使用getMeasuredWidth。但如果它返回0,则意味着当您尝试测量时,View尚未就绪。尝试稍后拨打电话。就像在onCreate完成时你提出的一个帖子

答案 1 :(得分:3)

它取决于你何时调用view.getWidth()。如果视图不可见,结果将始终为0 [onCreate,onResume]。

尝试在

中调用view.getWidth
 @Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    // call get width here

}

希望这会有所帮助。

答案 2 :(得分:0)

Button b = (Button) yourView.findViewById(R.id.your_button_id);
System.out.println("b.getMeasuredHeight() = "+b.getMeasuredHeight());
System.out.println("b.getMeasuredWidth() + "+ b.getMeasuredWidth());

答案 3 :(得分:0)

  • 在 view.post() 中调用 view.getWidth
  • 在 view.getViewTreeObserver().addGlobalLayoutListener() 中调用 view.getWidth

切记不要在onCreate()中直接调用view.getWidth(),因为测量过程还没有执行,getWidth()只能返回0。