zoukankan      html  css  js  c++  java
  • android获取view宽高的几种方法

    在onCreate方法中我们通过mView.getWidth()和mView.getHeight()获取到的view的宽高都是0,那么下面几种方法就可以在onCreate方法中获取到view的宽高。

    1、

            int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
            int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
            mTextView.measure(w, h);
            int height = mTextView.getMeasuredHeight();
            int width = mTextView.getMeasuredWidth();
            System.out.println("measure width=" + width + " height=" + height);

    2、mViewTreeObserver = mTextView.getViewTreeObserver();

            mViewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener()
            {
                @Override
                public void onGlobalLayout()
                {
                    // TODO Auto-generated method stub
                    mTextView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    System.out.println("onGlobalLayout width=" + mTextView.getWidth() + " height=" + mTextView.getHeight());
                }
            });

    3、

            mViewTreeObserver.addOnPreDrawListener(new OnPreDrawListener()
            {
                @Override
                public boolean onPreDraw()
                {
                    // TODO Auto-generated method stub
                    mTextView.getViewTreeObserver().removeOnPreDrawListener(this);
                    System.out.println("onPreDraw width=" + mTextView.getWidth() + " height=" + mTextView.getHeight());
                    return true;
                }
            });

    4、

        @Override
        public void onWindowFocusChanged(boolean hasFocus)
        {
            // TODO Auto-generated method stub
            super.onWindowFocusChanged(hasFocus);
            if (hasFocus)
            {
                System.out.println("onWindowFocusChanged width=" + mTextView.getWidth() + " height=" + mTextView.getHeight());
            }
        }

    打印结果:

  • 相关阅读:
    redis_ 5 集群
    redis_4 主从模式
    redis_3 持久化
    redis_2 数据类型
    linux_ubuntu 连接xftp
    redis_1 安装和简单使用
    Activiti 各个节点涉及的表
    oracle 数据库imp操作导入dmp文件时表空间问题
    ORA-27101: shared memory realm does not exist 错误的处理
    oralce清理user 和tablespace.
  • 原文地址:https://www.cnblogs.com/yushilong/p/3924741.html
Copyright © 2011-2022 走看看