Come visualizzare Testo lampeggiante in Android.Testo lampeggiante in visualizzazione Android
Grazie a tutti.
Come visualizzare Testo lampeggiante in Android.Testo lampeggiante in visualizzazione Android
Grazie a tutti.
Creare un'animazione vista per esso. È possibile eseguire una dissolvenza alfa dal 100% allo 0% in 0 secondi e viceversa in un ciclo. In questo modo, Android lo gestisce in modo intelligente e non devi rovinare tutto con threading e sprecare CPU.
Maggiori info su animazioni qui:
http://developer.android.com/reference/android/view/animation/package-summary.html
qual è il modo migliore per mantenere il testo lampeggiante? –
In realtà c'è un tag batter uovo di Pasqua per questo in ICS! :) In realtà non consiglio di usarlo - è stato DAVVERO divertito a trovarlo nella fonte, però!
<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>
Non ha funzionato per me: 'E/AndroidRuntime (19645): Causato da: android.view.InflateException: riga di file XML binario n. 9: Errore di gonfiaggio della classe lampeggiante –
Non è documentato: l'ho trovato per ICS di immersione sorgente. Sembra che il cambiamento sia stato introdotto il 05-17-2011. Non sono sicuro quale numero SDK che mappa anche. –
Oh, e se questo non fosse ovvio, sono abbastanza sicuro che il tag "blink" è un uovo di Pasqua. Non sto seriamente suggerendo che è la soluzione giusta! :) –
può essere fatto aggiungendo un ViewFlipper che alterna due TextViews e fadeIn e Fadeout animazione può essere applicato quando commutano.
layout del file: Codice
<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>
attività:
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));
È possibile utilizzare questo:
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);
Spero che questo aiuti!
davvero semplice e veramente utile –
Copia-incolla e bingo! Grazie per aver condiviso questo! –
utilizzando thread nel codice spreca sempre tempo di CPU e diminuisce le prestazioni dell'applicazione. Non dovresti usare i thread tutto il tempo. Utilizzare se ovunque necessario.
Usa animazioni XML per questo scopo:
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 attività: usare in questo modo: -
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) {
}
}
me Let sapere se avete domande ..
come posso farlo lampeggiare con 3 colori grazie in anticipo! –
@ We'reAllMadHere Ti suggerirei di usare Value Animator per questo compito, è molto facile da usare http://stackoverflow.com/questions/15582434/using-a-valueanimator-to-make-a-textview-blink-different-colors –
Questo è un modo molto chiaro per farlo ma anima il intero TextView compreso il suo colore di sfondo se non trasparente. C'è un modo per lampeggiare solo il 'testo' all'interno di' TextView' –
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;
ora creare metodo
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);
}
Ora creare metodo di aggiornamento a lampeggiare
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();
}
}
Ora funzionano bene
Hai provato cambiando il colore del testo ogni secondo per esempio? perché non credo che si può fare con il quadro. o forse è possibile utilizzare una WebView con un tag batter ... – Sephy
si potrebbe creare un thread che alterna la visibilità del textView tra il View.VISIBLE e Vista.INVISIBILE –
In realtà, non penso che tu possa fare una WebView come suggerito da Sephy; Webkit non esegue il rendering del tag