Android SDK - chronometer bez użycia XML

0

Chcę wstawić w swojej aplikacji stoper liczący ile jest ona uruchomiona. Wszystkie tutoriale, które znalazłem zakładają użycie xml do zdefiniowania layoutu i użycia taga <chronometer>, ja jednak używam klasę rozszerzającą view. W main odpalam moje view:
setContentView(new DrawView(this));

w klasie DrawView mam konstruktor i metodę onDraw, jak odpalić chronometer? Zupełnie nie mam pomysłu jak wyświetlić to w canvas:

public class DrawView extends View {
    Chronometer mChronometer;    
	
		public DrawView(Context context) {
	        super(context);
	        setFocusable(true);
                mChronometer = new Chronometer(context);
                mChronometer.start();
}


@Override 
                protected void onDraw(Canvas canvas) {
	        canvas.drawColor(Color.BLACK);             
	    	canvas.drawText("czas: " + "?CO TUTAJ WSTAWIC?", 20, 40, myPaint);
 }
}

Czy w ogóle dobrze myślę, że to tak trzeba obsłużyć, czy może brakuje mi czegoś jeszcze?

0

Chronomrter to komponont gui
Jak chcesz cały ekran rysować przez canvas, to nie użyjesz komponentów.

Na początku:

long start = SystemClock.elapsedTime()

Przy rysowaniu:

c.drawText("czas: " + (SystemClock.elapsedTime()-start) + " milisekund", 20, 40, paint);
0

Dziękuję, Twoja odpowiedź bardzo mi pomogła.

Proszę jednak o jeszcze jedną poradę - rysując w onDraw odświeża się on tylko w momencie wykonania jakiejś akcji, np. dotknięcia ekranu, jak mogę wymusić ciągłe odświeżanie ekranu, tak żeby te milisekundy leciały na bieżąco a nie tylko w momencie dotknięcie ekranu?

0

http://developer.android.com/reference/android/view/View.html#invalidate%28%29


IMO źle do tego podeszłeś. Spokojnie możesz to zrobić xml-em i równocześnie zdefiniować własny DrawView, który bez problemu można umieścić w tym xml-u. W ten sposób zamiast ręcznie wypisywać ten tekst, po prostu mógłbyś wstawić nad swoim DrawView tekst wewnątrz TextView i periodycznie aktualizować jego wartość. Upychając wszystko do tego DrawView zrobisz kolosa, który będzie trudny w utrzymaniu.
0

dzięki, o to chodziło, już wszystko działa!

do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1