webentwicklung-frage-antwort-db.com.de

Blinkender Text in der Android-Ansicht

Wie zeige ich Blinkender Text in Android an.

Danke euch allen. 

31
David Prun

Sie können dies verwenden:

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

Animation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(50); //You can manage the time of the blink with this parameter
anim.setStartOffset(20);
anim.setRepeatMode(Animation.REVERSE);
anim.setRepeatCount(Animation.INFINITE);
myText.startAnimation(anim);

Hoffe das hilft!

109
SolArabehety

Eigentlich gibt es in ICS ein Osterei-Blink-Tag dafür! :) Ich empfehle es eigentlich nicht - es war wirklich sehr amüsiert, es in der Quelle zu finden!

<blink xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content">
    <TextView 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="I'm blinking"
        />
</blink>
26
Bill Phillips

Erstellen Sie eine Ansichtsanimation dafür. Sie können einen Alpha-Wert innerhalb von 0 Sekunden von 100% auf 0% und wieder zurück in einem Zyklus ändern. Auf diese Weise wird Android intelligent damit umgegangen, und Sie müssen sich nicht mit Threading und verschwendeter CPU herumschlagen.

Mehr zu Animationen hier:
http://developer.Android.com/reference/Android/view/animation/package-summary.html

Tutorial:
http://developerlife.com/tutorials/?p=343

11

Die Verwendung von Threads in Ihrem Code verschwendet immer CPU-Zeit und verringert die Leistung der Anwendung. Sie sollten nicht immer Threads verwenden. Verwenden Sie es wo immer nötig.

Verwenden Sie dazu XML-Animationen:

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>

Blinzeln Aktivität: so verwenden: -

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(getApplicationContext(),
                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) {

    }

}

Lassen Sie mich wissen, wenn Sie Fragen haben.

5
Gaurav Arora

Dazu können Sie einen ViewFlipper hinzufügen, der abwechselnd zwei TextViews und Fadein- und Fadeout-Animationen verwendet, wenn sie wechseln.

Layoutdatei:

<ViewFlipper Android:id="@+id/flipper" Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:flipInterval="1000" >

<TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:gravity="center_horizontal" Android:text="TEXT THAT WILL BLINK"/>

<TextView Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:gravity="center_horizontal" Android:text="" />

</ViewFlipper>

Aktivitätscode:

private ViewFlipper mFlipper;
mFlipper = ((ViewFlipper)findViewById(R.id.flipper));
mFlipper.startFlipping();
mFlipper.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(), Android.R.anim.fade_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(getApplicationContext(), Android.R.anim.fade_out));
5
Anenth
If you want to make text blink on canvas in bitmap image so you can use this code
we have to create two methods 
So first, let's declare a blink duration and a holder for our last update time: 
private static final  int BLINK_DURATION = 350; // 350 ms
private long lastUpdateTime = 0; private long blinkStart=0;

jetzt Methode erstellen

    public void render(Canvas canvas) {
    Paint paint = new Paint();
    Paint.setTextSize(40);
    Paint.setColor(Color.RED);
    canvas.drawBitmap(back, width / 2 - back.getWidth() / 2, height / 2
            - back.getHeight() / 2, null);
    if (blink)
        canvas.drawText(blinkText, width / 2, height / 2, Paint);
}

Erstellen Sie nun eine Aktualisierungsmethode, um zu blinken

public void update() {
if (System.currentTimeMillis() - lastUpdateTime >= BLINK_DURATION
        && !blink) {
    blink = true;
    blinkStart = System.currentTimeMillis();
}
if (System.currentTimeMillis() - blinkStart >= 150 && blink) {
    blink = false;
    lastUpdateTime = System.currentTimeMillis();
 }

}

Jetzt funktioniert es gut

0