如何按位置变换linearlayout背景

时间:2015-10-16 07:39:58

标签: android

我无法找到这个问题的答案。

我想模仿ImageView内图像的转换,例如

image1 = (ImageView) findViewById(R.id.image1);
animationSlideInLeft = AnimationUtils.loadAnimation(this,android.R.anim.slide_in_left);
image1.startAnimation(animationSlideInLeft);

但这不是我想要的。相反,我想将drawable集转换为linear layout背景。

linearLayout.setBackground(drawable); 

如何转换drawable并使其在LinearLayout内部从左向右移动?

2 个答案:

答案 0 :(得分:1)

我不确定这是否适用于您之后的内容,但您是否考虑在ImageView内设置LinearLayout并使高度和宽度相同作为LinearLayout而不是设置LinearLayout背景?您可以像现在这样为ImageView制作动画,它会产生相同的结果。

答案 1 :(得分:1)

您可以使用RelativeLayout或AbsoluteLayout,在其中放置一个图像(覆盖它的父图像),然后安装活动的当前布局。现在,如果您为该图像设置动画,则您的活动背景似乎会动画化。
例如,假设这是您活动的当前布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/vg"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

现在这个布局看起来像以前的布局,你可以设置图像的动画,它的ID是img1(它看起来像背景:主布局):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/vg"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >



    <ImageView
        android:id="@+id/img1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:src="@drawable/bright_sun" />
    <LinearLayout
    android:id="@+id/vg2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

        <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />
    </LinearLayout>

</RelativeLayout>

在此处找到:Android activity - background drawable animated