在外形背景渐变动画渐变 [英] Fade animation in shape background gradient
问题描述
我一直没能找到做我想做的任何职位......我有一个矩形:
I have not been able to find any posts that do what I want...I have a rectangle:
<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的
:
The above shape is used as a background attribute in a 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的
动态变化的大小作为其内容的变化,所以我不能只使用一个图像文件作为背景(这其实隐藏的文本内容布局经常更换)。我试图删除安卓背景
属性,只是用映像文件我的 RelativeLayout的
但后来这一形象占据了整个屏幕,因为我必须使用WRAP_CONTENT这个映像文件必须放在code文本的意见占据了 RelativeLayout的
(否则文本覆盖图像)之前。我知道如何使一个Alpha补间动画,但我不知道如何分配安卓背景
属性动画。任何想法?
I want to slowly fade in and out different gradients in this rectangle.
The problem is, this RelativeLayout
changes size dynamically as its content changes so I can't just use an image file as the background (this would in fact hide the text content of the layout which changes frequently). I have tried removing the android:background
attribute and just using an image file in my RelativeLayout
but then this image occupies the whole screen since I must use wrap_content and this image file must be placed in code before the text views occupying the RelativeLayout
(otherwise the text is covered by the image). I know how to make an Alpha tween animation but I don't know how to assign the android:background
attribute to the animation. Any ideas?
推荐答案
创建TransitionDrawable到您使用的褪色和非衰落背景的两种可绘制的褪色。
Create a TransitionDrawable to fade between two drawables that you use for the faded and unfaded background.
<?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>
<一个href="http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html">http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html
然后在code使用,开始转型。我已经很难codeD 2秒(2000米利斯)
Then use in code, start the transition. I've hard coded 2 seconds (2000 millis)
TransitionDrawable trans = (TransitionDrawable) myLayout.getBackground();
trans.startTransition(2000);
这篇关于在外形背景渐变动画渐变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!