在Android中制作背景图片

时间:2015-10-29 13:46:26

标签: java android

我正在研究一个简单的项目,我想知道什么或如何让你的背景图像显得移动或移动,我有这种云想要无限移动?任何帮助将不胜感激。

1 个答案:

答案 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);注册一个监听器。