我找不到任何符合我想要的帖子......我有一个矩形:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="#FFFFFF" />
<padding android:left="4dp"
android:top="4dp"
android:right="4dp"
android:bottom="4dp" />
<corners android:radius="6dp" />
<gradient
android:angle="90"
android:startColor="#FF000000"
android:centerColor="#FF000000"
android:endColor="#FF0000cd"
android:type="linear" />
上述形状用作RelativeLayout
:
<RelativeLayout
android:id="@+id/layoutBottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animation="@anim/slide_top_to_bottom"
android:background="@drawable/rectangle4"
android:orientation="vertical" >
我想在这个矩形中慢慢淡出和淡出不同的渐变。
问题是,这个RelativeLayout
随着内容的变化动态地改变大小,所以我不能只使用图像文件作为背景(这实际上隐藏了经常变化的布局的文本内容)。我已尝试删除android:background
属性,只使用我RelativeLayout
中的图像文件,但此图像占据整个屏幕,因为我必须使用wrap_content,此图像文件必须放在文本视图之前的代码中占用RelativeLayout
(否则文本被图像覆盖)。我知道如何制作Alpha补间动画,但我不知道如何将android:background
属性分配给动画。有什么想法吗?
答案 0 :(得分:7)
创建一个TransitionDrawable,用于在用于淡化和未消除背景的两个drawable之间淡入淡出。
<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<!-- use whatever drawables you want, gradients, shapes etc-->
<item android:drawable="@drawable/faded" />
<item android:drawable="@drawable/unfaded" />
</transition>
http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
然后在代码中使用,开始转换。我硬编码2秒(2000毫秒)
TransitionDrawable trans = (TransitionDrawable) myLayout.getBackground();
trans.startTransition(2000);