Android-获取view的宽高
来源:互联网 发布:广告过滤软件 编辑:程序博客网 时间:2024/05/18 00:54
方式:
方式1:监听,如setOnClickListener
方式2:监听,如addOnGlobalLayoutListener
方式3:view.post 或 view.postdelay
方式4:onWindowFocusChanged
方式5:
示例:
布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="获取view的宽高" /></LinearLayout>
代码:
public class MyActivity extends FragmentActivity { private Button btn; private int mHeight; private int mMeasuredHeight; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test3); btn = ((Button) this.findViewById(R.id.btn)); mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onCreate==" + mHeight + " | " + mMeasuredHeight);//onCreate==0 | 0 //方式1:监听,如setOnClickListener btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onClick==" + mHeight + " | " + mMeasuredHeight);//onClick==144 | 144 } }); //方式2:监听,如addOnGlobalLayoutListener btn.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override public void onGlobalLayout() { btn.getViewTreeObserver().removeOnGlobalLayoutListener(this); mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onGlobalLayout==" + mHeight + " | " + mMeasuredHeight);//onGlobalLayout==144 | 144 } }); //方式3:view.post btn.post(new Runnable() { @Override public void run() { mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "post==" + mHeight + " | " + mMeasuredHeight);//post==144 | 144 } }); } @Override protected void onResume() { super.onResume(); mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onResume==" + mHeight + " | " + mMeasuredHeight);//onResume==0 | 0 } @Override protected void onStart() { super.onStart(); mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onStart==" + mHeight + " | " + mMeasuredHeight);//onStart==0 | 0 } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); mHeight = btn.getHeight(); mMeasuredHeight = btn.getMeasuredHeight(); Log.e("111", "onWindowFocusChanged==" + mHeight + " | " + mMeasuredHeight);//onWindowFocusChanged==144 | 144 }}
打印log顺序:
onCreate==0 | 0onStart==0 | 0onResume==0 | 0onGlobalLayout==144 | 144post==144 | 144onWindowFocusChanged==144 | 144
阅读全文
0 0
- Android获取View的高宽
- Android 如何获取view的宽高
- Android 获取View的宽高
- Android获取View的宽高
- Android获取View的宽高
- Android:获取View的宽高
- android 获取view的宽高
- android获取view宽高的时机
- Android 获取View的宽高
- Android 获取view的宽高方法
- Android-获取view的宽高
- Android获取View的宽高与View.measure详解
- Android获取View的宽高与View.measure详解
- 获取View的宽高
- android 获取控件的宽高和view的位置
- Android获取View的高宽的方式
- Android--获取View的宽高的几种方法
- Android中获取View的宽/高的时机
- Python——关于列表的更多特性
- PHP7打开Opcache,优化PHP7性能的几个设置
- Group Replication测试报告(2)
- Windows安装Keras
- windows和虚拟机ubuntu栈地址扩展的不同
- Android-获取view的宽高
- 图文并茂的sklearn PCA教程
- 编译原理中运算符的左结合和右结合
- [深度学习]Contractive Autoencoder
- 棋盘覆盖--分治法
- 真人秀
- 数组操作系列之去除空值与转换汉字
- maven项目配置redis,实现购物车功能
- 2.netty的helloworld