首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

也问:怎么获得控件大小(高度、宽度等)尺寸信息

2012-05-12 
也问:如何获得控件大小(高度、宽度等)尺寸信息?也问:如何获得控件大小(高度、宽度等)尺寸信息?在Activity的O

也问:如何获得控件大小(高度、宽度等)尺寸信息?
也问:如何获得控件大小(高度、宽度等)尺寸信息?

在Activity的OnCreate()中,用tv.getWidth()什么的得到的都是0,网上查来查去,大致上说应该是时机不对,onCreate()太早。请问应该在什么地方、什么时候查?

[解决办法]
在onDraw里边肯定,另外在 View.onMeasure、onLayout、或 onSizeChanged,记得调用 super.onXxxx,然后再检查尺寸是否>0了,这些应该也是可以的,你自己测试下看
[解决办法]
获取组件的宽高度为0,是因为组件还没用被正式使用,只有在代码中使用一次以后才能正确获得组件的宽高
[解决办法]
试了一下,在前面几个周期函数里面都获取不到,

然后在事件里面可以获取到,不知道是何缘故,还需进一步探讨:

Java code
@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                text = (TextView) findViewById(R.id.text);                btn = (Button) findViewById(R.id.btn);                btn.setOnClickListener(new Button.OnClickListener(){            @Override            public void onClick(View v) {                int width = text.getWidth();                int height = text.getHeight();                Log.i("Log: ", "----------->"+width + " | " + height);            }        });    }
[解决办法]
来了,看看
[解决办法]
Java code
               int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);        int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);        ssidtext.measure(w, h);        int width =ssidtext.getMeasuredWidth();        int height =ssidtext.getMeasuredHeight(); 

热点排行