Hirdetés

Keresés

Új hozzászólás Aktív témák

  • WonderCSabo

    félisten

    válasz Sianis #1737 üzenetére

    Én is az onUserInteraction-t akartam írni, de látom Karma megelőzött. Az Otto tényleg veszett jó cucc én is csak ajánlani tudom.

  • thon73

    tag

    válasz Sianis #1737 üzenetére

    Vicces, most derült ki mennyire topa vagyok a multithread-del, mégis megosztom egy volt ötletem. Én scrolloztatni akartam a képet, amíg a delikvens hosszan nyom egy pontot. A longpress nem jó, mert az csak egy dolgot csinál meg utána, aztán megint vár. Sztem. neked ugyanez kell fordítva: Ha érintés történik, akkor megszakítod a thread-et.
    Egy két kódrészlet:

    TouchThread touchThread;

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
    ...
    case MotionEvent.ACTION_DOWN:

    touchDirection = 1;
    touchThread = new TouchThread();
    touchThread.start();
    break;

    case MotionEvent.ACTION_UP:

    if (touchThread != null)
    touchThread.interrupt();
    break;
    }
    ...
    }

    private class TouchThread extends Thread
    {
    @Override
    public void run()
    {
    // Csak vár, hogy hosszú nyomás legyen
    for (int cnt=0; cnt<3; cnt++)
    {
    sleep(100);
    if (isInterrupted())
    {
    touchThread = null;
    return;
    }
    }

    // Innentől történik a gyorsuló görgetés
    int pause = 150;
    while(true)
    {
    for (int cnt=0; cnt<15; cnt++)
    {
    sleep(pause);
    if (isInterrupted())
    {
    touchThread = null;
    return;
    }
    // Itt kérjük meg a görgetést az UI száltól !!!!!!
    touchThreadHandler.sendEmptyMessage(0);
    }
    if (pause > 85)
    pause -= 30;
    }
    }

    // A görgetést a Handler fogja elvégezni
    private Handler touchThreadHandler = new Handler()
    {
    @Override
    public void handleMessage(Message msg)
    {
    if (touchDirection >= 0)
    rollForwardLine();
    else
    rollBackwardLine();
    touchState = 0;
    invalidate();
    }
    }
    }

    Ezt elég régen írtam, aztán megszakadt a dolog. Egyébként nem csak az időzítést tudja, hanem egyre gyorsul is a görgetés, amíg nyomod a képet.
    Bocs, hogy a kód összetöredezett, amíg kiszemezgettem, de sztem a lényeg érthető. Mint kiderült, nem vagyok (még) teljesen otthon a thread-ekben; (ha valaki hibát talál, és szól, köszönöm); de a kód prímán működik.

Új hozzászólás Aktív témák