web-dev-qa-db-ja.com

テキストビューを点滅させる方法

みんな私はそれが点滅する必要があるテキストビューを持っていますそれを手伝ってください。

<TextView 
       Android:id="@+id/usage"
       Android:layout_marginTop="220dip"
       Android:layout_marginLeft="45dip"
       Android:layout_marginRight="15dip"
       Android:typeface="serif"            
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"
       Android:text="Google "
       Android:textColor="#030900"/>

Googleテキストを点滅させたい

49
Goofy

これは、Androidの前の3.0バージョン、SolArabehetyの回答を使用するか、 this threadをご覧ください。

元の回答

package teste.blink;

import Android.app.Activity;
import Android.os.Bundle;
import Android.os.Handler;
import Android.view.View;
import Android.widget.TextView;

public class TesteBlinkActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        blink();
}

private void blink(){
    final Handler handler = new Handler();
    new Thread(new Runnable() {
        @Override
        public void run() {
        int timeToBlink = 1000;    //in milissegunds
        try{Thread.sleep(timeToBlink);}catch (Exception e) {}
            handler.post(new Runnable() {
                @Override
                    public void run() {
                    TextView txt = (TextView) findViewById(R.id.usage);
                    if(txt.getVisibility() == View.VISIBLE){
                        txt.setVisibility(View.INVISIBLE);
                    }else{
                        txt.setVisibility(View.VISIBLE);
                    }
                    blink();
                }
                });
            }
        }).start();
    }

<TextView 
   Android:id="@+id/usage"
   Android:layout_marginTop="220dip"
   Android:layout_marginLeft="45dip"
   Android:layout_marginRight="15dip"
   Android:typeface="serif"            
   Android:layout_width="wrap_content"
   Android:layout_height="wrap_content"
   Android:text="Google "
   Android:textColor="#030900"/>
24
ademar111190

これを使用できます:

TextView myText = (TextView) findViewById(R.id.myText );

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);
myText.startAnimation(anim);

これは私がこの投稿で与えたのと同じ答えです Android view

お役に立てれば!

175
SolArabehety

この目的のためにXMLアニメーションを使用します。

R.anim.blink

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <alpha Android:fromAlpha="0.0"
        Android:toAlpha="1.0"
        Android:interpolator="@Android:anim/accelerate_interpolator"
        Android:duration="600"
        Android:repeatMode="reverse"
        Android:repeatCount="infinite"/>
</set>

点滅アクティビティ:次のように使用します:-

public class BlinkActivity extends Activity implements AnimationListener {

    TextView txtMessage;
    Button btnStart;

    // Animation
    Animation animBlink;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_blink);

        txtMessage = (TextView) findViewById(R.id.txtMessage);
        btnStart = (Button) findViewById(R.id.btnStart);

        // load the animation
        animBlink = AnimationUtils.loadAnimation(this,
                R.anim.blink);

        // set animation listener
        animBlink.setAnimationListener(this);

        // button click event
        btnStart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                txtMessage.setVisibility(View.VISIBLE);

                // start the animation
                txtMessage.startAnimation(animBlink);
            }
        });

    }

    @Override
    public void onAnimationEnd(Animation animation) {
        // Take any action after completing the animation

        // check for blink animation
        if (animation == animBlink) {
        }

    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }

    @Override
    public void onAnimationStart(Animation animation) {

    }

}

クエリがあれば教えてください。

27
Gaurav Arora

AlphaAnimation を作成し、テキストビューを設定するアクティビティのテキストビューに適用します。点滅は、アニメーションを1.0アルファから0.0アルファから1.0アルファまで繰り返すことで実現されます。


Edit:Google provideth

9
Nick Campion

これを設定する必要はありません。アルファのみ:

anim/flash_leave_now.xml

    <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:Android="http://schemas.Android.com/apk/res/Android"
       Android:duration="900"
       Android:fromAlpha="1.0"
       Android:repeatCount="infinite"
       Android:repeatMode="reverse"
       Android:toAlpha="0.2"/>

コード内:

mTextView.setAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.flash_leave_now));
4
Prakash

トップの答えへの礼儀、これは私がやったことです:

 textBlink = new TimerTask() {
        int countdown = 10;

        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (countdown <= 0) {
                        timer.cancel();
                        textview.setVisibility(View.GONE);
                    } else {
                            textview.setVisibility(textview.getVisibility() == View.VISIBLE?View.GONE:View.VISIBLE);
                        countdown--;
                    }
                }
            });
        }
    };

それからコードのどこかに:

  timer = new Timer();
  timer.scheduleAtFixedRate(textBlink,0,500);

これにより、5秒間点滅効果が行われます。 fadeIn-fadeOut効果が必要ない場合に推奨されます。

0
Irshu

アニメーションを作成することもできますし、View.VISIBLEとView.INVISIBLEをタイマーで作成しないのはなぜですか?私はより良い方法は確かにアルファ付きのアニメーションだと思う:)

0
Climbatize
private fun blink() {
        val handler = Handler()
        Thread(Runnable {
            val timeToBlink = 500    //in milissegunds
            try {
                Thread.sleep(timeToBlink.toLong())
            } catch (e: Exception) {
            }

            handler.post(Runnable {

                if (usage.visibility == View.VISIBLE) {
                    usage.visibility = View.INVISIBLE
                } else {
                    usage.visibility = View.VISIBLE
                }
                blink()
            })
        }).start()
    }
0
eagerprince

<blink/>タグ。

<blink
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content">

  <TextView 
       Android:id="@+id/usage"
       Android:layout_marginTop="220dip"
       Android:layout_marginLeft="45dip"
       Android:layout_marginRight="15dip"
       Android:typeface="serif"            
       Android:layout_width="wrap_content"
       Android:layout_height="wrap_content"
       Android:text="Google "
       Android:textColor="#030900"/>

</blink>
0
Hounshell
public final class BlinkEffectUtils {

    private static BlinkEffectUtils blinkEffect;

    public enum PROPERTY_TYPE {
        BACKGROUND_COLOR,
        TEXT_COLOR
    }

    private BlinkEffectUtils() {
    }

    public static BlinkEffectUtils getInstance(Context context) {
        if (blinkEffect == null) {
            blinkEffect = new BlinkEffectUtils();
        }

        return blinkEffect;
    }

    public void setBlinkEffect(Object targetView, PROPERTY_TYPE property_type, int duration, int defaultColor, int effectColor) {
        String propertyName = "";

        switch (property_type) {

            case TEXT_COLOR:
                propertyName = "textColor";
                break;

            case BACKGROUND_COLOR:
                propertyName = "backgroundColor";
                break;
        }

        @SuppressLint("ObjectAnimatorBinding")
        ObjectAnimator anim = ObjectAnimator.ofInt(targetView, propertyName,
                effectColor,
                defaultColor);
        anim.setDuration(duration);
        anim.setEvaluator(new ArgbEvaluator());
        anim.setRepeatMode(ValueAnimator.REVERSE);
        anim.setRepeatCount(ValueAnimator.INFINITE);
        anim.start();

    }

}
0
Caner Yılmaz