Zeitbasierte Schleife

  • Antworten:8
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 22

23.11.2016, 17:35:19 via Website

Hallo zusammen :)

ich würde gerne eine Zeitbasierte Schleife schreibne. Also einen bestimmten Codeteil immer alle 5sec ausführen. Ist der Timer dasselbe oder macht dieser das nur 1 mal verzögert?
Wär super wenn jemand nen Beispiel Coder hätte .

Danke und Grüße

Antworten
  • Forum-Beiträge: 11.184

23.11.2016, 17:41:50 via Website

Hallo Hendrix,
wie wäre es mit einem Handler und postDelayed:

final Handler h = new Handler();
Runnable r = new Runnable()
{
public void run()
{
//hier dein Code zum ausführen
h.postDelayed(this,5000);//Handler neustarten
}
};
h.postDelayed(r,5000);//1. Starten

Das wäre jetzt mein Vorschlag, wobei es noch andere Möglichkeiten gibt das umzusetztn bsp. mit einem CountdownTimer o.ä.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hendrix

Antworten
  • Forum-Beiträge: 22

23.11.2016, 18:04:27 via Website

danke für die schnelle ich versuch es mal damit wär natürlich top wenns gleich klappt klappt :)

Antworten
  • Forum-Beiträge: 142

23.11.2016, 18:04:27 via Website

Du kannst dich eventuell an Javascript orientieren

Was der Mensch nicht weiß, macht ihm Angst.

Antworten
  • Forum-Beiträge: 22

23.11.2016, 18:09:44 via Website

mit javascript kenn ich mich leider noch weniger aus als java ^^

Antworten
  • Forum-Beiträge: 22

23.11.2016, 18:14:31 via Website

@Pascal P

Leider is meine funktion die ich alle 5 sec ausführen will eine onDraw() Funktion . Es klappt also mit der run() funktion darin nicht so ganz^^

enter code here  @Override
protected void onDraw(Canvas canvas) {
        int x = 20;
        Random r = new Random();
        int i1 = r.nextInt(900 - 200) + 200;
        rnd = new Random();
        //Linke Seite

        Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.stachelnstart);
        Bitmap resizedBitmap = Bitmap.createScaledBitmap(image, i1, 300, true);
            float left = (float) 0;
            float top = (float) (getHeight() - resizedBitmap.getHeight());
            canvas.drawBitmap(resizedBitmap, left, top, paint);
        //rechte Seite
        Bitmap images = BitmapFactory.decodeResource(getResources(), R.drawable.stachelnstart1);
        Bitmap resizedBitmaps = Bitmap.createScaledBitmap(images, getWidth()-resizedBitmap.getWidth()-OwlHole, 300, true);
            float left1 = (float) (getWidth() - resizedBitmaps.getWidth());
            float top1 = (float) (getHeight() - resizedBitmaps.getHeight());
            canvas.drawBitmap(resizedBitmaps, left1, top1, paint);

}

den ganzen Spaß will ich alle 5 sec abspielen oder zumindes //linke Seite //rechte Seite

Antworten
  • Forum-Beiträge: 3.648

23.11.2016, 18:16:22 via Website

@Galsterer

Du kannst dich eventuell an Javascript orientieren

Inwiefern meinst du das im Zusammenhang mit Canvas ??

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 22

23.11.2016, 18:21:53 via Website

danke für den Link werd ihn mir anschauen..
hab ich versucht hat aber nicht so gut geklappt ehrlich gesagt^^

Antworten