开发中经常遇到要在oncreate()中获取控件宽高,一般的 view.getwidth()总是获取到的值为零,怎样才能在oncreate()中处理获得控件宽高呢,下面具体讲讲。
本篇文章参考以下链接:
android获取屏幕宽高与获取控件宽高
在此表示感谢!
直接上获取控件宽高方法的代码吧,
/**
* Instruction:控件相关工具类
* <p>
* Author:pei
* Date: 2017/7/3
* Description:
*/
public class ViewUtil {
public static void getViewWidth(final View view, final OnViewListener onViewListener) {
ViewTreeObserver vto2 = view.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
if(onViewListener!=null){
onViewListener.onView(view.getWidth(),view.getHeight());
}
}
});
}
public interface OnViewListener {
void onView(int width,int height);
}
}
在MainActivity的OnCreate()中的调用如下:
TextView textView=(TextView)findViewById(R.id.textView);
ViewUtil.getViewWidth(textView, new ViewUtil.OnViewListener() {
@Override
public void onView(int width, int height) {
//执行逻辑代码
//......
}
});
ok,其实获取控件宽高的代码并不难,之前也整理过,以为写过文章呢,结果在csdn上翻翻没有,就再记录下,算是笔记吧,方便以后查阅,谢谢诶。