zoukankan      html  css  js  c++  java
  • 获取安卓控件的大小

    原文地址:http://blog.sina.com.cn/s/blog_821e2bb101010yin.html


      试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因 看一下Activity的生命周期 就会明白。

      上代码:

    方法一:

            int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
            int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
            ssidtext.measure(w, h);
            int width =ssidtext.getMeasuredWidth();
            int height =ssidtext.getMeasuredHeight();

    方法二:

            ViewTreeObserver vto = ssidtext.getViewTreeObserver();
            vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
                public boolean onPreDraw() {
                    int height = ssidtext.getMeasuredHeight();
                    int width = ssidtext.getMeasuredWidth();
                    return true;
                }
            });


    另外还搜索到一个方法:
    -----------------------------------------------------------
    先贴到这里。正在做试验。(试验完毕,这种方法得到的控件宽是正确的。

            ViewTreeObserver vto = mArrowUp.getViewTreeObserver(); 

            vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 

                @Override 

                public void onGlobalLayout() { 

                   mArrowUp.getViewTreeObserver().removeGlobalOnLayoutListener(this); 

                    Log.e("Width",Integer.toString(mArrowUp.getWidth())); 

                } 

            }); 

    具体用哪一种可以根据需求自己选择

  • 相关阅读:
    YARN 多租户资源池配置
    HDFS NameNode HA 部署文档
    MySQL 触发器示例
    Apache ZooKeeper 单机、集群部署文档
    Apache Flume 安装文档、日志收集
    IBM X3650 M4 主板故障
    Apache Hive 安装文档
    Apache Hadoop 集群安装文档
    Cloudera Manger CDH 安装文档
    VMware 克隆网卡无法启动
  • 原文地址:https://www.cnblogs.com/runwind/p/4454684.html
Copyright © 2011-2022 走看看