android动态获取TextView的属性(width、height、line)
2016-10-18 09:58
531 查看
Android动态获取TextView的属性(width、height、line)
在某些的androidUI设计中需要动态得到TextView、EditText的属性,比如宽度高度、行数等属性,这种类似的属性一般是在setText()过后才能得到的,当我们UI设计中需要这些属性时,则我们就得在绘制开始,或者绘制结束后得到属性,这时并没有显示在UI上。在预绘制时得到属性:
ViewTreeObserver vto = textview.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { int height = textview.getMeasuredHeight(); int width = textview.getMeasuredWidth(); int line=textview.getLineCount(); /** *得到属性实现自己的操作 **/ return true; } });
在布局测绘完后得到属性
ViewTreeObserver vto2 = textview.getViewTreeObserver(); vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { /** *得到属性实现自己的操作 **/ } });
这两个动态接口可以用在ui的所有控件中。
observer 这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。
interface ViewTreeObserver.OnPreDrawListener当一个视图树将要绘制时,所要调用的回调函数的接口类。
interface ViewTreeObserver.OnGlobalLayoutListener当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类。
相关文章推荐
- android 动态修改 TextView的width属性
- <TextView>标签中必须加android:layout_height和android:layout_width属性
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- Android开发中动态获取RecyclerView的Item中EditText的内容
- android在oncreate()方法中获取view的宽高width,height
- android TextView SingleLine属性过时的问题
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标
- android-获取View的Width和Height-随心
- 在Activity中的OnCreate中,获取控件TextView的width及height
- android TextView 如何动态获取宽度
- Android解决在onCreate()中获取View的width、Height为0的方法
- Android获取TextView行数getLineCount()返回0
- Android在onCreate()方法中动态获取TextView控件的高度
- 【Android】在控件、视图绘制或改变之后如何获取其部分状态和属性(比如高、宽、TextView绘制后的文字行数等)
- Android 在初始化Activity时获取View的width和height
- Android在onCreate()方法中动态获取TextView控件的高度
- Android 动态的给Button、TextView、ImageView等控件设置了background后,再设置padding属性时该属性不起作用
- Android基础教程——在TextView中显示Html 自定义标签,获取标签属性
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- Android中获取TextView的值