Antwort
Erstellen Sie eine Ansichtsanimation dafür. Sie können eine Alpha-Überblendung von 100% auf 0% in 0 Sekunden und wieder zurück in einem Zyklus durchführen. So handhabt Android es intelligent und Sie müssen nicht mit Threading und verschwenden CPU verschwenden.
Mehr auf Animationen hier:
http://developer.android.com/reference/android/view/animation/package-summary.html
Was ist der beste Weg, um den Text blinken zu lassen? –
Eigentlich gibt es ein Osterei blink-Tag für diese in ICS! :) Ich empfehle eigentlich nicht, es zu benutzen - war wirklich amüsiert, es in der Quelle zu finden, obwohl!
<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>
Funktionierte nicht für mich: 'E/AndroidRuntime (19645): verursacht durch: android.view.InfllateException: Binär-XML-Datei Zeile # 9: Fehler beim Aufblasen der Klasse blink' –
Es ist nicht dokumentiert - ich habe es von Quelle Tauchen ICS gefunden. Sieht aus wie die Änderung am 17.05.2011 eingeführt wurde. Nicht sicher, welche SDK-Nummer auch zugeordnet wird. –
Oh, und wenn das nicht offensichtlich war - ich bin mir ziemlich sicher, dass das "blink" -Tag ein Osterei ist. Ich behaupte nicht ernsthaft, dass es die richtige Lösung ist! :) –
Es kann durch Zugabe eines ViewFlipper erfolgen, die zwei Textviews wechselt und FadeIn und Fadeout Animation kann angewendet werden, wenn sie wechseln.
Layout-Datei:
<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ät Code:
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));
Sie können diese 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!
wirklich einfach und wirklich nützlich –
Kopieren-Einfügen und Bingo! Danke Sany für das Teilen dieser! –
Die Verwendung von Threads in Ihrem Code verschwendet immer mehr CPU-Zeit und verringert die Leistung der Anwendung. Sie sollten nicht ständig Threads verwenden. Verwenden Sie, wenn nötig.
Verwendung XML Animationen für diesen Zweck:
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>
Blink Aktivität: es wie folgt verwendet werden: -
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) {
}
}
Let me wissen, wenn Sie Fragen haben ..
Wie kann ich es mit 3 Farben blinken dank im Voraus! –
@ We'reAllMadHere Ich würde vorschlagen, Sie Value Animator für diese Aufgabe verwenden, ist es sehr http://stackoverflow.com/questions/15582434/using-a-valueanimator-to-make-a-textview-blink-different-colors –
Dies ist eine sehr klare Möglichkeit, es zu tun, aber es animiert die ganze TextView einschließlich seiner Hintergrundfarbe, wenn nicht transparent. Gibt es eine Möglichkeit, nur den 'Text' in' TextView' zu blinken –
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;
erstellen nun Methode
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);
}
Jetzt Update-Methode erstellen
es zu blinkenpublic 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
Haben Sie versucht, die Änderung der Farbe des Textes in jeder Sekunde zum Beispiel gut funktionieren? weil ich nicht glaube, dass Sie das mit dem Framework tun können. oder vielleicht können Sie eine Webansicht mit einem Blink-Tag verwenden ... – Sephy
Sie könnten einen Thread erstellen, der die Sichtbarkeit von textView zwischen View.VISIBLE und View umschaltet.UNSICHTBAR –
Eigentlich glaube ich nicht, dass Sie einen WebView wie Sephy vorgeschlagen haben können; Webkit gibt das Tag