【问题标题】:Screen Size Honeycomb Menu android屏幕尺寸蜂窝菜单android
【发布时间】:2011-05-29 15:04:36
【问题描述】:

您好,我正在尝试获取屏幕的屏幕大小减去底部的菜单栏。

我知道我可以根据设备的分辨率减去一个常数,但这是一个超级丑陋的 hack。我相信谷歌的人不会愚蠢到忘记给用户一个函数来获取底部菜单栏的高度,这样我就可以从全屏尺寸中减去它

这是一个类似的帖子。 Size of android notification bar and title bar?

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

what_i_need =metrics.heightPixels-buttomMenuHeight();

我需要按钮菜单高度();

我在 API 中找不到它。在这一点上,我真的不在乎向后可比性

谢谢

【问题讨论】:

    标签: android size screen android-3.0-honeycomb


    【解决方案1】:

    为什么不使用activity顶层View的高度呢?例如如果您的 Activity 包含全高 LinearLayout,请使用它的高度,这样您就不必知道菜单高度或通知栏高度。

    我认为您在进行这种计算时正走在一条危险的道路上,因为您不知道 Android 的未来布局可能是什么,也不知道它们在 Google TV 上可能会有什么不同,等等。

    【讨论】:

    • 我正在用本机代码绘制图像,我需要将屏幕的大小传递给 C。我试图通过视图的 getHeight() 获取高度,但即使在 setContentView 之后也总是返回 0调用。
    【解决方案2】:

    尝试在 onLayout 之后调用 getHeight()。视图在膨胀时未调整大小。

    编辑: 或者由于 Activity 没有 onLayout,您可能会等待 onSizeChanged。

    (参考How to know when activity is laid out?

    【讨论】:

      【解决方案3】:

      我正在使用本机代码绘制图像,我需要将屏幕大小传递给 C。

      我试图通过视图的 getHeight() 来获取高度,但即使在调用 setContentView 之后也总是返回 0。

      RelativeLayout masterLayout = new RelativeLayout(this);
      RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
      masterLayout.setLayoutParams(params);
      setContentView(masterLayout);
      

      当我尝试 masterLayout.getHeight() 时,它返回 0。 正如我所说的fill_parent,我希望获得全屏高度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        • 2015-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多