我创建了一个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>
答案 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。