Android 获取View高度的几种方法
2017-04-05 17:13
495 查看
package com.zkl.test; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initEvent(); } private void initView() { mTextView = (TextView) findViewById(R.id.mTextView); } private void initEvent() { int height = mTextView.getHeight(); Log.d("Debug","oncreat获取高度:"+height);//获取的高度为0 ,所以不能直接去获取高度 mTextView.post(new Runnable() { @Override public void run() { int height = mTextView.getHeight(); Log.d("Debug","post中获取高度:"+height); } }); mTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (Build.VERSION.SDK_INT>=16){ mTextView.getViewTreeObserver().removeOnGlobalLayoutListener(this); }else{ mTextView.getViewTreeObserver().removeGlobalOnLayoutListener(this); } int height = mTextView.getHeight(); Log.d("Debug","addOnGlobalLayoutListener中获取高度:"+height); } }); mTextView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { int height = mTextView.getHeight(); mTextView.getViewTreeObserver().removeOnPreDrawListener(this); Log.d("Debug","addOnPreDrawListener中获取高度:"+height); return false; } }); mTextView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { mTextView.removeOnLayoutChangeListener(this); int height = mTextView.getHeight(); Log.d("Debug","addOnLayoutChangeListener中获取高度:"+height); } }); } }
相关文章推荐
- Android获取屏幕或View宽度和高度的方法
- Android ViewTreeObserver使用总结及获得View高度的几种方法
- android获取view宽高的几种方法 - ysl_longer
- android 开发中获取View视图的宽和高的几种方法
- android获取view高度方法
- Android--获取View的宽高的几种方法
- android获取view宽高的几种方法,解决获取高宽为0问题
- android在onCreate()方法中获取View的宽度与高度的方法实战
- Android在onCreate()方法中动态获取TextView控件的高度
- android在onCreate()方法中获取View的宽度与高度的方法实战
- Android获取View坐标的几种方法
- Android中获取view的宽高的几种方法
- Android下在onCreate方法中获取TextView的高度
- Android在onCreate()方法中动态获取TextView控件的高度
- android 开发中获取View视图的宽和高的几种方法
- Android 开发中获取View视图的宽和高的几种方法
- android获取view宽高的几种方法
- 在onCreate方法中获取某个View的宽度和高度
- android 获取屏幕高度和宽度 的方法
- 【Android 开发】:TextView的几种使用方法