【问题标题】:Suggestions on approaches on achieving a specific layout on Android关于在 Android 上实现特定布局的方法的建议
【发布时间】:2022-01-17 11:55:05
【问题描述】:

我正在尝试在 Android 上复制以下布局(带有文本的框和在专用部分向外延伸的线)

很明显,这些盒子可以实现为单独的视图(或可绘制),其形状为 .

很明显,这些盒子需要对引出它们的“电线”具有一定的灵活性,最重要的是决定线路的“转折”点。我已经想到了一些方法来实现这一点:

  1. 只需使用可绘制的图像并将文本框定位在确切位置即可实现整个布局
  2. 使用专用视图来实现这一点,以充分灵活地将文本框定位在任何位置并与所有屏幕尺寸兼容。

我倾向于尝试 #2,但不知道从哪里开始。起初,我无法决定是否应该使用 ViewGroup 作为基类并添加 TextView 和普通视图作为子类,还是应该使用单个 View 来实现它?我关心的第二件事是,我是否想太多了,是否有一种简单的方法可以实现相同的目标(只是为了节省时间,没有别的)?

非常感谢任何帮助/指导材料。提前致谢。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    我认为从长远来看,方法 2 会更好。由于图像的性质,您必须保持纵横比;否则,人会被拉伸。因为您要保持纵横比(至少是人物部分),所以每个文本框和端点的位置可以表示为与边缘或中心线的距离百分比。

    假设您显示的图像是整个图像,则可以将腹部端点设置为距左边缘距离的 45%,也可以设置为距顶部距离的 42%。文本框也可以同样放置。一旦放置了文本框和端点,线条就可以简单地连接它们。现在图像可以拉伸到任何尺寸以支持多种屏幕尺寸,并且只要尊重纵横比,并且看起来不错。

    查看ConstraintLayout 及其百分比准则和障碍。还有一些径向放置可能会有所帮助。您可能仍然需要使用少量代码来支持布局,但 ConstraintLayout 应该能够帮助您完成 95% 的解决方案。

    编辑:我也想提一下可能对您最有帮助的偏见。 Here 是一个将偏差用于棋盘解决方案的示例,可能有用。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多