zoukankan      html  css  js  c++  java
  • 【Android】获取控件的宽和高


          有时候我们须要在Activity的时候获取控件的宽和高来做一些操作,以下介绍三种获取宽和高的方式:


    1. onWindowFocusChanged

    @Override
        public void onWindowFocusChanged(boolean hasFocus)
        {
            super.onWindowFocusChanged(hasFocus);
            if (hasFocus)
            {
                int width = image.getMeasuredWidth();
                int height = image.getMeasuredHeight();
                Toast.makeText(MainActivity.this, "width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
            }
    
        }


    2. post方式

     @Override
        protected void onStart()
        {
            super.onStart();
    
            image.post(new Runnable()
            {
    
                @Override
                public void run()
                {
                    int width = image.getMeasuredWidth();
                    int height = image.getMeasuredHeight();
                    Toast.makeText(MainActivity.this, "onstart--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
                }
            });
        }


    3. ViewTreeObserver

     ViewTreeObserver observer = image.getViewTreeObserver();
            observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener()
            {
    
                @Override
                public void onGlobalLayout()
                {
                    image.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    int width = image.getMeasuredWidth();
                    int height = image.getMeasuredHeight();
                    Toast.makeText(MainActivity.this, "onglobal--width = " + width + "---height = " + height, Toast.LENGTH_SHORT).show();
                }
            });

    备注:以上image是ImageView控件

    ImageView image = (ImageView)findViewById(R.id.image);

  • 相关阅读:
    geoserver 地图性能和缓存
    geoserver PostGIS的安装和使用
    geoserver 数据图层输出格式
    Centos7Yum安装配置指定版本nginx
    Centos7Yum安装PHP7.2
    CentOS7 中把默认yum源更换成163源
    安装配置Elasticserch的方法
    redis的持久化(RDB&AOF的区别)
    LayerDate渲染多个class出现闪现问题的解决
    explain分析SQL语句详解
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7181905.html
Copyright © 2011-2022 走看看