【问题标题】:Can we find the height of the bar at the bottom of the desktop on some Androids?我们可以在某些 Android 上找到桌面底部栏的高度吗?
【发布时间】:2014-04-15 13:50:21
【问题描述】:

在某些 Android 设备上,桌面底部有一个栏,用于存放常用的应用程序图标。 这个酒吧的通用名称是什么?

这就是问题所在。 我们正在开发适用于 Android 的动态壁纸。 条形图覆盖了壁纸的基本部分 - 图片上地面所在的底部,请参见下面的屏幕截图。

有没有什么方法可以用 Andorid API 找到条的高度? 这样我们就可以抬起墙纸的底部,避免横条重叠。

【问题讨论】:

  • 不确定。尝试在操作栏样式中搜索 actionBarSplitStyle

标签: android live wallpaper


【解决方案1】:

不确定这是否有任何帮助,但这会返回底部导航栏的大小:

int resourceId = context.getResources().getIdentifier("navigation_bar_height",    "dimen", "android");
if (resourceId > 0) {
        return context.getResources().getDimensionPixelSize(resourceId);
}

也许该快速启动栏还有其他标识符。

【讨论】:

  • 我刚刚在android\sdk\platforms\android-19\data\res\values\dimens.xml中找到了“action_bar_default_height” 但它必须是Action Bar的高度,而不是启动栏在底部。无论如何,谢谢你的想法!
【解决方案2】:

该栏的通用名称是“码头”。至于您关于通过 Android API 获取高度的问题,简短的回答是否定的。

更长的答案是,每个主屏幕替换应用程序以及可能在该应用程序中使用的每个主题都定义了自己的“dock”(如果有)。您必须为多种可能性编写解决方案 (an example of some popular ones can be found here)。您可以将列表缩减为安装在最流行手机上的最流行 ROM 使用的默认应用程序,有些甚至可能具有 API 或访问其设置的方法,但您永远无法涵盖所有​​情况,并且必须针对多个情况维护您的代码其他应用的更新。

或者,您可以重新设计壁纸以假设平均高度被遮挡,并且在屏幕的最低部分不包含太多详细内容。您甚至可以为用户提供每个壁纸的两个版本。一个带有码头缓冲器,另一个没有;让他们选择最适合他们主题的。

即使您可以 100% 地访问所有主屏幕应用程序的底座高度,您仍然需要知道它是否透明,它包含应用程序图标并且实际上会遮盖您的壁纸。某些应用允许用户在隐藏和可见状态之间切换 Dock,因此可能处于活动状态,但实际上并未覆盖您的壁纸。

【讨论】:

  • 谢谢你,mbs。这只是一个美妙的答案。我想我们会走支持主流设备/shell的道路。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多