背景过渡以消除角半径

时间:2016-02-03 09:50:01

标签: android android-layout android-animation android-transitions

我们有一个linearlayout,其背景是部分舍入的(只有右侧),在确定的时刻我们需要将该背景迁移到非舍入的那个,所以我考虑使用TransitionDrawable,但由于某种原因这不起作用。这是我的档案:

R.drawable.bg_right_rounded:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/blue" />
    <padding android:left="0dip" android:top="0dip" android:right="10dip" android:bottom="0dip" />
    <corners  android:topLeftRadius="0dp" android:topRightRadius="10dp"
    android:bottomLeftRadius="0dp" android:bottomRightRadius="10dp"/>
</shape>

R.drawable.bg_blue:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/blue" />
</shape>

R.drawable.bg_transition:

<?xml version="1.0" encoding="utf-8"?>
<transition  xmlns:android=
"http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_right_rounded"/>
    <item android:drawable="@drawable/bg_blue"/>
</transition>

然后布局就像:

<LinearLayout
    android:id="@+id/vg_chat_typer_inner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/bg_transition">
    ....
</LinearLayout>

然后在给定的时刻我们做:

TransitionDrawable transition = (TransitionDrawable) layout.getBackground();
transition.startTransition(1000);

如果我在正常情况下这样做它可以正常工作,但是当我将该linearlayout放在另一个线性布局中时,它会停止工作。它失败的情况如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:layout_alignParentBottom="true">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal"
            android:background="@drawable/bg_transition">
            ....
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="0">
            ....
        </LinearLayout>
</LinearLayout>

是因为体重吗?为什么不起作用?

提前致谢

0 个答案:

没有答案