Java 如何使约束布局的宽度为负值?

Java 如何使约束布局的宽度为负值?,java,android,Java,Android,我不确定这是否可行,或者我是否在错误地应对这一挑战。我正在制作一个2D平台,所以当你点击屏幕边缘(宽度)时,会出现一个新的地图部分。目前,我为地图的每个部分制作了单个图像。问题是,在较大的设备上,这会留下大量的空白屏幕,并且图像只适合特定的设备 现在我想知道,我是否可以将ImageView(贴图)设置为负X值,然后当角色到达边缘时,贴图将向右移动(X将更高) 我使用的是XML(Java也很好),我不知道如何处理这个问题。因为您使用的是约束布局,所以需要设置android:layout\u wid

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

现在我想知道,我是否可以将ImageView(贴图)设置为负X值,然后当角色到达边缘时,贴图将向右移动(X将更高)


我使用的是XML(Java也很好),我不知道如何处理这个问题。

因为您使用的是约束布局,所以需要设置
android:layout\u width=“0dip”

这将使任何图像适合其屏幕宽度。(图像宽度应大于屏幕水平宽度)。
应用一些条件,例如,
如果图像宽度<屏幕宽度,则调用剩余屏幕的下一个图像,否则调用整个屏幕的下一个图像。
希望对代码流有所帮助。

:)

您可以使用android:translationX或android:translationY,它们实际上支持负值。但在你的特殊情况下,我想你是想用指甲钳剪头发。。。你使用的东西不是为这个目的设计的。使用多个大图像视图可能会导致性能问题(我不知道您的具体情况),我建议您勇敢地创建自己的wiew并动态绘制它(这听起来很难,但我相信会比您尝试的更容易),或者在谷歌上全面搜索您想要的视图


特别是对于游戏,你应该尝试一下引擎库或类似的东西,相信我。。。最后会更容易,你可能会得到一些新的东西:)

另一种解决方案是绘制一个比屏幕尺寸大的布局(例如,
RelativeLayout
),在所有边上都有等量的填充

例如,如果您希望从屏幕右侧显示一个50dp x 50dp
ImageView
,则您的
RelativeLayout
将比屏幕高100 dp,宽100 dp(每侧50 dp)。然后,你可以在代码的最右边放置< <代码> IVIEVIEW > ReloLayOutOut,并将它随意移动到可见区域。所以,在这个例子中,在-20dp下绘制,实际上是在30dp下绘制

这是一种非常简单的编程方法,这种方法可以让您以所描述的方式控制地图加载