Android:按百分比排名?

标签 android layout android-relativelayout scaling percentage

我有一个来 self 的设计师的 UI 设计,它包含一个背景 map ,上面有几个按钮,在整个 map 上都是非线性的。目前我将它们放置在与 map 一样大的 RelativeLayout 中,并在 中使用 margin-leftmargin-top 等浸

这工作正常,但我还需要考虑屏幕非常小的用户,这会导致 map 按比例缩小。我的相对布局会随之缩放,但边距值当然不会。

所以我想知道,我应该怎么做呢?我更愿意使用像

这样的百分比来布局这些按钮
left="30%"
top="50%"

Android 中有什么东西可以让这样的事情成为可能吗?否则我必须为此设计一个自定义布局类。

视觉表示:(当然它们实际上并不在 6 行上,并且在 x 或 y 位置部分重叠)。它实际上是建筑物的真实(抽象) map ,带有可以作为按钮按下的位置标记。

 -------------------------
 |    x              x   |
 |           x           |
 |                       |
 |      x                |
 |                 x     |
 |           x          x|
 -------------------------

最佳答案

这里有一个复杂的方法,不需要自定义ViewGroup。假设你想要一个位于左侧 30%、顶部 40% 的按钮

FrameLayout 
   View with background, match parent
   LinearLayout orientation=horizontal, match parent 
     View layout_width=0dp, layout_weight=30, height=match_parent
     LinearLayout orientation=vertical, width=0dp, weight=70, hieght=match
       View layout_height=0dp, layout_weight=40, width=match_parent
       FrameLayout layout_height=0dp, layout_weight=60
         Button

关于Android:按百分比排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029216/

相关文章:

android - Flutter:如何将 DropdownButton 菜单图标对齐到最右边?

android - Android 上的 PhoneGap : camera. getPicture 成功过程未被调用

variables - 如何与 Nuxt.js 从布局到页面共享变量?

android - 如何为与多个布局对象相关的背景图像支持不同的手机和屏幕尺寸

html - 容器高度为 100% 的可变大小 LI 元素中的垂直对齐文本

android - 如何使用 RelativeLayout 实现以下结果?

android - 如何从代码设置布局属性

android - "@android:style/TextAppearance.StatusBar.EventContent.Title"在 android L 中将颜色设置为白色而不是灰色