【问题标题】:Layout that enlarges buttons for larger screens?为大屏幕放大按钮的布局?
【发布时间】:2011-03-31 19:41:25
【问题描述】:

在指定按钮和工具栏的大小时,我一直在使用 XML 布局文件的“设备独立像素”(dip) 功能。通过使用 dips,我可以指定 GUI 组件的物理尺寸,这有助于确保组件对于所有屏幕尺寸始终可读和可点击。例如,我的应用程序有一个水平工具栏,顶部大约 50dip 高,旁边有几个 40dipx40dip 按钮。

但是,物理尺寸刚好大到可以在小屏幕上看到和点击的按钮在平板电脑上不是很有用。例如,我的工具栏将包含大量空白,按钮很难看到(因为您倾向于将数位板远离您的脸)并且在实践中很难单击按钮(因为它们与屏幕)

是否有任何独立于分辨率的方法来处理这个问题?

我知道我可以使用“layout_weight”来拉伸组件,这样我就可以指定要使用的屏幕百分比,但这对于很多按钮来说真的很麻烦(而且,我的按钮需要是方形的)如果我有主要是手动执行此操作。我可以为每个设备使用不同的布局文件,但这很痛苦。

【问题讨论】:

    标签: android user-interface android-3.0-honeycomb tablet


    【解决方案1】:

    是否有任何独立于分辨率的方法来处理这个问题?

    使用维度和可绘制资源。

    你还没有指出你的按钮是如何“40dipx40dip”的。

    如果它们是通过特定的高度和宽度设置的,而不是在布局或样式中使用40dip,请使用@dimen/toolbar_btn。然后在res/values/dimens.xml 中将其定义为40dip 并在res/values-large/dimens.xml(或res/values-large-land/dimens.xml)中将其定义为60dip,或任何适合您的东西。

    如果按钮是“40dipx40dip”是因为图片,那么只需为平板电脑创建稍大一些的图片,然后将它们放入例如res/drawable-large-mdpi/ 资源目录。

    【讨论】:

    • 我在布局文件中设置了 40dip 大小,例如“
    • @rebeccamaher:“否则我将不得不为每个屏幕尺寸手动调整所有尺寸”——是的。考虑到只有四种屏幕尺寸,这似乎不是一项不可逾越的任务。 “我怎么知道有多少像素来制作我放置在可绘制文件夹中的图像文件” - 使它们比您用于 40dip 的任何像素大 50%,因为 60 比 40 大 50%。
    • 我的意思是我假设当你说图像应该以 40x40dpi 显示并且 Android 会从适当的文件夹中获取图像文件时,文件应该有多少像素以便没有向上或向下缩放发生?我对 dpi、像素和 dpi 文件夹之间的关系感到困惑。
    • @rebeccamaher:这超出了 SO 评论的范围。试试developer.android.com/guide/practices/screens_support.html
    • 好的,谢谢。我认为这可能只是简单的事情,比如将两个数字相乘。
    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    相关资源
    最近更新 更多