我有视图,其中有layout_width =“wrap_content”。如果我在代码中使用view.getWidth(),它返回0. :-( 如何将视图“wrap_content”的宽度转换为像素?
答案 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)
切记不要在onCreate()中直接调用view.getWidth(),因为测量过程还没有执行,getWidth()只能返回0。