Android在onCreate中获取控件的宽高

在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没有被绘制出来.

利用下面的方法可以获得控件的宽高:

 ViewTreeObserver vto = zoomImageView.getViewTreeObserver();
        vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            @Override
            public boolean onPreDraw() {
                if (hasMeasured == false)
                {

                    int height = zoomImageView.getMeasuredHeight();
                    int width = zoomImageView.getMeasuredWidth();
                    Log.i("height",height+"");
                    Log.i("width",width+"");
                    hasMeasured = true;
                }
                return true;
            }
        });
时间: 2024-10-14 02:36:00

Android在onCreate中获取控件的宽高的相关文章

Android在OnCreate中获取控件的宽度和高度

原文链接:http://www.cnblogs.com/wt616/archive/2012/05/11/2496180.html 在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高度. 可惜的是,根据我的验证,利用网上转载的那些方法在OnCreate函数中获取到的仍然是0(希望搞技术的能自己验证过再转载),例如Measure方法之后调用getMe

activity 中获取控件的宽高

1.第一种方式: TextView textview3 = findViewById(R.id.textview3); textView3.post(new Runnable() { @Override public void run () { int width = textView3.getWidth(); ViewGroup.LayoutParams layoutParams = button2.getLayoutParams(); layoutParams.width = width;

Android下在onCreate中获取控件的宽度和高度(通过回调)

有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasuredHeight().getTop().getLeft()等方法是无法获取到真实值的,只会得到0. 这是因为View组件布局要在onResume回调后完成. 下面提供实现方法: 第一种: onGlobalLayout回调会在布局完成时自动调用 img1.getViewTreeObserver().

Android在onCreate()中获得控件尺寸

@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        final ImageView imageView = (ImageView) findViewById(R.id.imageview);              int w = View.Mea

uwp - 获取控件的宽高

在wpf可以通过控件.Width/Height来获取宽高,来到uwp上却没效果,在微软的开发人员中心找到了答案. 所以,我们要在后台获取控件的宽高应该是:控件.ActualHeight/ActualWidth.

在onCreate()中获取某个View的宽高

我们都知道,在Activity的onCreate()方法中调用View的getWidth()和getHeight()方法时,返回的值都是0,因为Activity调用setContentView方法只是创建了这个View,调用了这个View构造方法而已,其中的onMeasure()方法还没被调用,所以不能知道它的宽高.但是,View有一个公开的方法post(),允许我们通过参数Runnable,在子线程中获取View的宽和高. public class MainActivity extends A

setWidth()和setHeight()没反应的问题,onCreate()里面获取控件的高度是0

editText=(EditText)findViewById(R.id.myEditText); // editText.setHeight(10); //不生效 editText.getLayoutParams().height = 100; onCreate()里面获取控件的高度是0 解决办法 int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.

【Android】获取控件的宽和高

有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式: 1. onWindowFocusChanged @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { int width = image.getMeasuredWidth(); int height = image.ge

android PercentRelativeLayout 支持百分比来设置控件的宽高

Android 最终官方支持按百分比来设置控件的宽高了. 我们先来看看效果:       看一下布局: PercentRelativeLayout <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"