侧边栏壁纸
  • 累计撰写 15 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Android调用getWidth()或getHeight()获取视图尺寸为0的解决办法

天马
2023-02-25 / 0 评论 / 0 点赞 / 979 阅读 / 251 字 / 正在检测是否收录...

最近开发android的时候,发现按钮如果设置固定大小,就会造成在一些小屏幕的显示异常的问题
因此想根据屏幕大小动态的设置按钮大小,但是发现 getHeight() 的时候获取高度为0
后来发现是因为在跳转Activit的时候按钮还没有生成成功,故按钮的高度为0
因此我们可以在按钮生成完成之后在调用方法,就可以获取到高度

      int widthPixels = displayMetrics.widthPixels; // 屏幕宽度(像素)
        int heightPixels = displayMetrics.heightPixels; // 屏幕高度(像素)
        float density = displayMetrics.density; // 屏幕密度(0.75 / 1.0 / 1.5)
        int densityDpi = displayMetrics.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
        Log.i(TAG, "widthPixels: "+widthPixels);
        Log.i(TAG, "heightPixels: "+heightPixels);
        Log.i(TAG, "density: "+density);
        Log.i(TAG, "densityDpi: "+densityDpi);
        // 这里会在按钮 生成完成后进行回调
	  button.post(new Runnable() {
                @Override
                public void run() {
                    Log.i(TAG, "按钮id: "+resID+";按钮高度"+button.getHeight() );
  }
            });
0

评论区