也问:如何获得控件大小(高度、宽度等)尺寸信息?在Activity的OnCreate()中,用tv.getWidth()什么的得到的都是0,网上查来查去,大致上说应该是时机不对,onCreate()太早。请问应该在什么地方、什么时候查?
解决方案 »
- Excessive JNI global references (2001) 错误,如何解决
- 新手问个界面设计上的问题
- adb卡死
- android 删除sqlite数据库,为什么模拟器中执行成功,设备上删除不成功?
- 【请教】Launcher mainmenu的view,如何为view创建RGB565的缓存?
- 请教各位大牛,请问如何调节机器的频率?
- 自动测试需要:非adb,跨进程模拟点击
- 线程给全局变量赋值,但是读不出来,求指点
- cmd java
- Eclipse的默认签名
- 打开一个mapview的运用,第一次打开没事,返回在打开报如下错误,再返回打开运用有没事,但下一次有会报错,如此循环。
- android如何获取操作系统名字
@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);
}
});
}
3楼的办法有一定的局限性。我现在的是要程序运行好自动获取主View(可以理解为TextView,实际是自制的一个View派生类)的区域大小,以决定一些其它操作,比如要读入的文本长度等等,这就不可能靠等着人工去按个键再往下走了。
《Csdn收音机》支持全屏截图功能啦,快来看看吧!
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();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int height = ssidtext.getMeasuredHeight();
int width = ssidtext.getMeasuredWidth();
return true;
}
});高还是48 长度是480.。xml里配置的是“fill_parent”所有是没错的。。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int height = ssidtext.getHeight();//height=48
int width = ssidtext.getWidth();//width=480
}
});具体使用那个。。看需求吧。。应该算是解决了 欢迎拍砖 ^_^
这个监听器会被多次执行。是不是还有更合理的地方?过去回1张贴就气喘吁吁,现在用了《Csdn收音机》,一口气回5张贴不费劲!
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int height = ssidtext.getMeasuredHeight();
int width = ssidtext.getMeasuredWidth();
}
});
这个要放在哪里?我放在Activity的onCreate()里报错:
《Csdn收音机》在线检测最新版本,让你永不过期!
这个事件会被激发多次,有时候点击某个按钮也会。我还没仔细分析代码。有情况我再细说。发帖子也有微博效果!一起用《Csdn收音机》吧!
噢。那可能是我的按钮响应代码里有不妥之处。等我有空仔细查查。暂时也只能这样了,我加了个判断,以避免多次运行。感谢你一直以来的支持,欢迎使用《Csdn收音机》!
我想拿到这个height和width后在onCreate里用来设置其他view的位置(位置跟这个height和width的值有关系),似乎没办法用这个方法。