【问题标题】:How can I make the width of a Constraint Layout negative?如何使约束布局的宽度为负?
【发布时间】:2019-06-03 17:55:21
【问题描述】:

我不确定这是否可能,或者我是否错误地处理了这个挑战。我正在制作一个 2D 平台游戏,所以当您点击屏幕边缘(宽度)时,会出现地图的新部分。目前,我为地图的每个部分制作了单个图像。问题是,在较大的设备上,这会留下很多空白屏幕,并且图像只适合特定的设备。

现在我想知道,我能否将我的 ImageView (MAP) 设为 负 X 值,然后当角色碰到边缘时,地图会向右移动(X 会更高)。 p>

我正在使用 XML(Java 也可以),但我不知道如何处理这个问题。

【问题讨论】:

    标签: java android


    【解决方案1】:

    由于使用的是约束布局,所以需要设置android:layout_width="0dip"
    这将使任何图像适合其屏幕宽度。(图像宽度应大于屏幕水平宽度)。
    应用一些条件,例如,
    如果图像宽度 希望它对代码流有所帮助。
    :)

    【讨论】:

      【解决方案2】:

      您可以使用实际支持负值的 android:translationX 或 Android:translationY。但是在您的特定情况下,我认为您正在尝试使用指甲刀剪头发……您使用的不是为此目的而设计的东西。使用多个大图像视图可能会成为性能问题(我不知道您的具体情况),我建议您勇敢地制作自己的视图并动态绘制(这听起来很困难,但我相信会比您尝试的更容易),或进行全面的谷歌搜索以获得您想要的视图。

      特别是对于游戏,您应该尝试使用引擎库或类似的东西,相信我...最终会更容易,您可能会获得新的东西:)

      【讨论】:

        【解决方案3】:

        另一种解决方案是绘制一个布局(例如RelativeLayout大于您的屏幕尺寸,所有边的填充量相等。

        例如,如果您想让 50dp x 50dp ImageView 从屏幕右侧显示,您的RelativeLayout 将比您的屏幕高 100dp 且宽 100dp(每边 50dp)。然后,您可以将ImageView 定位在RelativeLayout 的最右侧,然后随意将其移动到可见区域。所以在 -20dp 上绘制一些东西,在这个例子中实际上是在 30dp 上绘制的。

        以编程方式 getting the screen sizeresizing a layout 非常简单,这种方法可以让您以您描述的方式控制地图加载。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-18
          • 1970-01-01
          • 2017-10-31
          • 1970-01-01
          • 2023-03-22
          相关资源
          最近更新 更多