创建一个闪烁和颜色变化的 TextView

Create a Blinking and Colour Changing TextView

我正在创建一个基本应用程序,其中有一些 EditText 字段和 TextView 字段。我想创建一个 activity,如果我在 EditText 字段 TFusername 中键入 'yes',我希望包含单词 'yes' 的 EditText 字段闪烁几次并更改颜色为绿色,可以是文本本身或 EditText 字段框。有人可以帮助我了解如何为这个过程编写 .java 代码吗?

我附上了下面的 .xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="16dp" >

<TextView
    android:id="@+id/result_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:layout_above="@+id/bVoice"
    android:layout_marginBottom="10dp"
    android:layout_centerHorizontal="true" />

<ListView
    android:layout_width="100dip"
    android:layout_height="40dip"
    android:id="@+id/lvVoiceReturn"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/TFusername"
    android:hint="type here"
    android:textColor="#FF7A7A7A"
    android:gravity="center_horizontal"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:id="@+id/caption_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:typeface="sans" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Speak"
    android:id="@+id/bVoice"
    android:layout_gravity="bottom"
    android:onClick="onButtonClick_1"
    android:layout_alignTop="@+id/Blogin"
    android:layout_toLeftOf="@+id/Blogin"
    android:layout_toStartOf="@+id/Blogin" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Login"
    android:id="@+id/Blogin"
    android:layout_gravity="center_horizontal"
    android:layout_alignParentBottom="true"
    android:layout_alignLeft="@+id/result_text"
    android:layout_alignStart="@+id/result_text" />

<EditText
    android:id="@+id/editText72"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:gravity="center"
    android:inputType="textMultiLine"
    android:text="Test Application"
    android:textSize="30sp"
    android:layout_below="@+id/TFusername"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="67dp" />

<EditText
    android:id="@+id/editText73"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText72"
    android:layout_marginTop="15dp"
    android:layout_toLeftOf="@+id/result_text"
    android:ems="10"
    android:gravity="center"
    android:inputType="textPersonName"
    android:text="YES"
    android:textColor="@android:color/darker_gray" />

<EditText
    android:id="@+id/editText75"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText72"
    android:layout_marginTop="15dp"
    android:layout_toEndOf="@+id/editText73"
    android:layout_toRightOf="@+id/editText73"
    android:ems="10"
    android:gravity="center"
    android:inputType="textPersonName"
    android:text="NO"
    android:textColor="@android:color/darker_gray" />

Animation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(50); //You can manage the blinking time with this parameter
anim.setStartOffset(20);
anim.setRepeatMode(Animation.REVERSE);
anim.setRepeatCount(Animation.INFINITE);
anim.setAnimationListener(new AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                // if you want to change color at start of animation
                //textview.settextcolor("your color")
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // if you want to change color at end of animation
                //textview.settextcolor("your color")
            }

            @Override
            public void onAnimationRepeat(Animation animation) {


            }
        });
myText.startAnimation(anim);

使用 setAnimationListener 回调更改文本视图中文本的颜色。