创建闪烁和颜色更改TextView

时间:2017-03-28 05:18:44

标签: android listview android-edittext android-animation

我正在创建一个基本应用程序,其中有一些EditText字段和TextView字段。我想创建一个活动,如果我键入“是”'在EditText字段TFusername中,我希望EditText字段包含单词' yes'闪烁几次,也变为绿色,可以是文本本身或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" />

1 个答案:

答案 0 :(得分:0)

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回调更改文本视图中文本的颜色。