Jak wyświetlić migający tekst w systemie Android.Miga tekst w widoku z Androidem
Dziękuję wszystkim.
Jak wyświetlić migający tekst w systemie Android.Miga tekst w widoku z Androidem
Dziękuję wszystkim.
Utwórz animację widoku dla niego. Możesz zrobić zanikanie alfa od 100% do 0% w ciągu 0 sekund i ponownie w cyklu. W ten sposób system Android radzi sobie z nim inteligentnie i nie musisz mieć problemów z gwintowaniem i marnowaniem procesora.
Więcej na animacje tutaj:
http://developer.android.com/reference/android/view/animation/package-summary.html
jaki jest najlepszy sposób, aby tekst migał? –
Właściwie istnieje pisanka blink tag w tym ICS! :) Naprawdę nie polecam korzystania z tego - był NAPRAWDĘ rozbawiony, aby znaleźć go w źródle!
<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>
Nie działa dla mnie: 'E/AndroidRuntime (19645): Spowodowane przez: android.view.InflateException: Binarna linia plików XML nr 9: Błąd pompowania klasy blink' –
Nie jest to udokumentowane - znalazłem to przez ICS nurkowania ze źródeł. Wygląda na to, że zmiana została wprowadzona 05-17-2011. Nie wiem, który numer SDK też mapuje. –
Aha, a jeśli to nie było oczywiste - jestem prawie pewien, że tag "mrugnięcie" to pisanka. Nie sugeruję, że to właściwe rozwiązanie! :) –
To można zrobić dodając ViewFlipper że na przemian dwa TextView i Fadein i Fadeout animacja może być zastosowany, gdy przełącznik.
Układ pliku: Kod
<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>
aktywny:
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));
Można to wykorzystać:
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);
nadzieję, że to pomaga!
naprawdę proste i Naprawdę przydatna –
Kopiuj i wklej i bingo! Dziękuję za udostępnienie tego! –
Używanie wątków w kodzie zawsze powoduje straty czasu procesora i zmniejsza wydajność aplikacji. Nie powinieneś używać nici przez cały czas. Użyj, jeśli to konieczne.
Wykorzystanie XML Animacje do tego celu:
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>
aktywny Blink: używać go tak: -
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) {
}
}
Niech mnie wiem, jeśli masz jakiekolwiek pytania ..
jak mogę sprawić, żeby migało 3 kolorami z góry dzięki! –
@ We'reAllMadHere Proponuję użyć Value Animator do tego zadania, Jest bardzo Łatwy w użyciu, łatwy do użycia, http://stackoverflow.com/questions/15582434/using-a-valueanimator-to-make-a-extext-blink-different-colors –
Jest to bardzo jasny sposób na zrobienie tego, ale animuje cały TextView, w tym jego kolor tła, jeśli nie jest przezroczysty. Czy istnieje sposób, aby migać tylko "tekst" wewnątrz "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;
teraz tworzyć metoda
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);
}
Teraz stworzyć metody aktualizacji migać
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();
}
}
teraz działać dobrze
Czy próbowałeś zmienić kolor tekstu w każdej sekundzie na przykład? ponieważ nie sądzę, że można to zrobić w ramach. a może możesz użyć widoku WWW z tagiem blink ... – Sephy
możesz utworzyć wątek, który przełącza widoczność textView pomiędzy View.VISIBLE a View.INVISIBLE –
Właściwie nie sądzę, że można zrobić WebView, jak sugerował Sephy; Webkit nie wyświetla tagu