我正在研究一个简单的项目,我想知道什么或如何让你的背景图像显得移动或移动,我有这种云想要无限移动?任何帮助将不胜感激。
答案 0 :(得分:0)
<FrameLayout ...>
(在布局xml中)将其子项一个接一个地绘制。
所以
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
< the background view />
< the informative view />
</FrameLayout>
应该做的伎俩。但请注意,移动的背景会浪费CPU负载和电池等资源。
更新(移动:与任何其他视图一样)
要进行视图移动,您可以使用动画或以编程方式更改视图位置。我做了后者以回应触摸,你可能会选择前者。 SO上有很多about个动画。 我会尝试将背景图像比屏幕宽2倍,将左坐标设置为负值,然后将此值更改为0(图像将向右移动,至少在iOS中是这样)。
注1。 要在LinearLayout或RelativeLayout中定位视图,您可以使用辅助透明视图。
例如,下面的布局将屏幕分为5个区域:
11111111111
222 333
44444444444
并将图像放在“2”右上角和“4”上方的角落中:
<RelativeLayout
android:id="@+id/sight"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<View
android:id="@+id/sightq1"
android:layout_width="fill_parent"
android:layout_height="80px"
android:layout_alignParentTop="true"
/>
<View
android:id="@+id/sightq4"
android:layout_width="fill_parent"
android:layout_height="80px"
android:layout_alignParentBottom="true"
/>
<View
android:id="@+id/sightq2"
android:layout_width="80px"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_above="@id/sightq4"
android:layout_below="@id/sightq1"
/>
<View
android:id="@+id/sightq3"
android:layout_width="80px"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_above="@id/sightq4"
android:layout_below="@id/sightq1"
/>
<!-- example: -->
<ImageView
android:id="@+id/..."
android:layout_toRightOf="@id/sightq2"
android:layout_alignTop="@id/sightq4"
android:src="@drawable/..."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>
话虽如此,我必须注意,可能你不需要辅助视图,只需定位即可。
注2。
要获取视图的实际视图宽度/高度,您必须使用ViewTreeObserver.OnGlobalLayoutListener
并从<调用 v.getMeasuredWidth()和 v.getMeasuredHeight() EM> onGlobalLayout()的。只有在布局发生后才知道这些宽度和高度。
v.getViewTreeObserver().addOnGlobalLayoutListener(mLayoutListener);
注册一个监听器。