Timer Blinken lassen

  • 4 Antworten
  • Letztes Antwortdatum
G

guguli

Neues Mitglied
0
Hallo zusammen,

Ich mache ein Android Game und möchte mein Timer so gestalten, dass wenn die Zeit weniger als 10 sec ist, dann die Farbe ändert z.B. in rot und dann anfängt zum Blinken. Die Farbe zuändern, hab ich hin bekommen, kriege aber das mit dem Blinken nicht :)... Kann mir einer Helfen Pls.


THX
 
Hallo guguli, willkommen im Forum.
Deine Programmierfrage habe ich in das pass. Forum verschoben.
 
Also ich würde mal versuchen, dass du den Text abwechselnd setzt und rausnimmst ... Das ganze musst du halt in einem Async Task steuern!
 
danke für die Antwort.

So wollte ich auch machen. ICh poste einfach was schon gemacht ist.
Code:
public void onCreate(Bundle savedInstanceState) {
		super.game_mode = true;
		super.onCreate(savedInstanceState);
		player = new Player();
		player.addListener(this);
		blink();

              private void blink() {
		final Handler handler = new Handler();
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				final int timeToBlink = 1000;
				try{Thread.sleep(timeToBlink);}catch(Exception exception){}
					handler.post(new Runnable() {
						
						@Override
						public void run() {
							
							if(ui_time.getVisibility() == View.VISIBLE){
								ui_time.setVisibility(View.INVISIBLE);
							}else{
								ui_time.setVisibility(View.VISIBLE);
							}
							blink();
						}
					});
				
			}
		}).start();
		
	}

das Problem ist wenn ich dann das Spiel starten will bzw. nen Map aufmachen möchte, bin ich dann erzwungen das spiel zu abbrechen. :(

Der ursprüngliche Beitrag von 15:39 Uhr wurde um 15:48 Uhr ergänzt:

also hab etwas geändert. DIese Version ist besser :)
Code:
@Override
public void run() {
if (((player.getTime()/1000) <= 10) && ui_time.getCurrentTextColor() != getResources().getColor(R.color.alert_timer_color))
				{
					ui_time.setTextColor(getResources().getColor(R.color.alert_timer_color));
		
						final Handler handler = new Handler();
						new Thread(new Runnable() {
							
							@Override
							public void run() {
								final int timeToBlink = 1000;
								try{Thread.sleep(timeToBlink);}catch(Exception exception){}
									handler.post(new Runnable() {
										
										@Override
										public void run() {
											
											if(ui_time.getVisibility() == View.VISIBLE){
												ui_time.setVisibility(View.INVISIBLE);
											}else{
												ui_time.setVisibility(View.VISIBLE);
											}
											
										}
									});
								
							}
						}).start();
						
					}
				
				
				else if (((player.getTime()/1000) > 10) && ui_time.getCurrentTextColor() != getResources().getColor(R.color.default_timer_color))
				{
					ui_time.setTextColor(getResources().getColor(R.color.default_timer_color));
				}
				
				ui_time.setText("Time:" + String.valueOf(player.getTime() / 1000) + "s");
			}
		});
	}


Der ursprüngliche Beitrag von 15:48 Uhr wurde um 15:50 Uhr ergänzt:

das Problem ist nun sobald die Time weniger als 10 wird verschwindet der Timer und bleib Invisibel :(
 
Kann mir da keiner helfen????

Der ursprüngliche Beitrag von 11:58 Uhr wurde um 13:08 Uhr ergänzt:

ich habs hinbekommen trotzdem danke.

Code:
final Animation timeAnim = new AlphaAnimation(1.0f, 0.0f);
					timeAnim.setDuration(250);
					timeAnim.setInterpolator(new LinearInterpolator());
					timeAnim.setRepeatCount(Animation.INFINITE);
					timeAnim.setRepeatMode(Animation.REVERSE);
					ui_time.startAnimation(timeAnim);
 
Zurück
Oben Unten