Android 如何在 textview 边框上启用动画
How to enable the animation on textview borders in Android
我创建了一个 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>
我认为 xml 无法做到这一点。创建一个 FrameLayout
,它有一个 View
,影子作为第一个 child,你的 TextView
作为第二个。然后使用 AlphaAnimation
淡出或在 View
中使用阴影。
您可以将您的 TextView 包裹在一个 FrameLayout 中,它已分配了您的背景。向您的 TextView 添加一个 onClick 侦听器,它可以适当地为您的 FrameLayout 背景 Drawable in/out 的 alpha 设置动画。您可能希望以编程方式分配背景 Drawable,以便轻松引用它。
您还需要将触摸向下和向上事件从您的 TextView 转发到 FrameLayout 以使其改变颜色,这意味着还要向其添加一个 onTouch 侦听器。我认为促进颜色变化的最简单方法是将 android:state_pressed
更改为 android:state_selected
并将 FrameLayout 上的 selected 设置为 true on touch DOWN,false on touch UP.
我创建了一个 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>
我认为 xml 无法做到这一点。创建一个 FrameLayout
,它有一个 View
,影子作为第一个 child,你的 TextView
作为第二个。然后使用 AlphaAnimation
淡出或在 View
中使用阴影。
您可以将您的 TextView 包裹在一个 FrameLayout 中,它已分配了您的背景。向您的 TextView 添加一个 onClick 侦听器,它可以适当地为您的 FrameLayout 背景 Drawable in/out 的 alpha 设置动画。您可能希望以编程方式分配背景 Drawable,以便轻松引用它。
您还需要将触摸向下和向上事件从您的 TextView 转发到 FrameLayout 以使其改变颜色,这意味着还要向其添加一个 onTouch 侦听器。我认为促进颜色变化的最简单方法是将 android:state_pressed
更改为 android:state_selected
并将 FrameLayout 上的 selected 设置为 true on touch DOWN,false on touch UP.