如何在Android中的textview边框上启用动画

时间:2015-05-21 21:55:18

标签: android xml textview android-animation

我创建了一个XML文件,可以在单击时启用textview边框更改颜色。现在我想添加另一条羽毛,边框柔和地消失。我怎么能这样做?

这是XML代码。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/textbox" />
            <stroke android:width="5dip" android:color="@drawable/border_pressed" />
            <corners android:radius="5dp" />
        </shape>    
    </item>    

    <item android:state_pressed="false">
        <shape android:shape="rectangle">
            <solid android:color="@color/textbox" />
            <stroke android:width="5dip" android:color="@drawable/border_unpressed" />
            <corners android:radius="5dp" />
        </shape>
    </item>

</selector>

2 个答案:

答案 0 :(得分:0)

我认为你不能通过xml实现这一目标。创建一个FrameLayout View,其中第一个孩子为阴影,第二个孩子为TextView。然后使用AlphaAnimation淡出或带有阴影的View

答案 1 :(得分:0)

您可以将TextView包装在FrameLayout中,后者会为其分配背景。在TextView中添加一个onClick侦听器,它可以适当地为您的FrameLayout的背景可绘制的Alpha输出动画。您可能希望以编程方式分配背景Drawable以获得一个很好的简单引用。

您还需要将Text上的触摸DOWN和UP事件转发到FrameLayout以使其更改颜色,这意味着还要向其添加onTouch侦听器。我认为促进颜色变化的最简单方法是将android:state_pressed更改为android:state_selected,并在触摸DOWN时将FrameLayout上的选中设置为true,触摸UP时设置为false。