将视图添加到半透明线性布局

时间:2014-08-05 01:39:08

标签: android animation android-linearlayout transparency

我很难理解如何为半透明的LinearLayout创建添加动画。有两个视图具有不透明度和移动背景(谷歌地图,如果它是重要的)。 View1是LinearLayout,view2正在添加到view1。但是当添加view2时,可以通过view1看到它(见下面的左侧动画)。

enter image description here

有什么方法可以阻止它正确地实现我的动画吗? (目标:看右边的动画)请记住,背景正在变化,并不是固定的图片。

祝你好运 拉瓦

1 个答案:

答案 0 :(得分:1)

我想我的评论可能并不完全清楚,所以我总结了一个简单的例子来更好地解释和演示。由于我不确定你的View将是什么,我已经将它们保留为通用,并设置了一些你想要改变的硬编码属性。

main.xml布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/stripes_diag" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#00000000" >

            <TextView android:id="@+id/view2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:background="#88ffffff"
                android:textColor="#000000"
                android:textSize="40sp"
                android:text="Lorem Ipsum" />

        </LinearLayout>

        <View android:id="@+id/view1"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:background="#88ffffff" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Animate"
            android:onClick="onClick" />

    </LinearLayout>

</RelativeLayout>

MainActivity上课:

public class MainActivity extends Activity
{
    View view1, view2;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        view1 = findViewById(R.id.view1);
        view2 = findViewById(R.id.view2);
    }

    public void onClick(View v)
    {
        view2.setY(view2.getHeight());
        ObjectAnimator anim = ObjectAnimator.ofFloat(view2, "y", 0);
        anim.setDuration(1500);
        anim.start();
    }
}

看一下效果:

effect sample