Új hozzászólás Aktív témák
-
thon73
tag
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
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Öt számjegyű akkukapacitást ígér a Realme
- Nvidia GPU-k jövője - amit tudni vélünk
- Két 16 GB-os GeForce gyártását szüntette meg az ASUS
- Parfüm topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Sony Xperia 1 VI - egyből hat
- Le Mans Ultimate
- OLED monitor topic
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Playstation 5 lemezes 825GB CFI-1216A, újra fém pasztázva, 6 hónap garanciával, Bp-i üzletből eladó!
- LG UltraWide 34WQ75X-B Ívelt Monitor! 34" 3440x1440 / 4K / 99% sRGB!
- LG 32MR50C-B VA Monitor! 1920x1080 / 100Hz / 5ms / FreeSync
- LG 32UR500-B VA Monitor! 3840x2160 / 4ms / 60Hz / FreeSync
- Szinte Új Razer Huntsman V2 US Bolti ár:60k INGYEN FOXPOST
- Bomba ár! Lenovo ThinkPad X280 - i7-8550U I 16GB I 512SSD I 12,5" I HDMI I Cam I W11 I Gari!
- iPhone 16 Pro 128GB Desert Titanium -1 ÉV GARANCIA - Kártyafüggetlen
- Sosemhasznált! HP OmniBook 5 Flip i5-1334U 8GB 512GB 14" FHD+ áthajtós-érintős Gar.: 1 év
- Xiaomi Redmi Note 11 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo ThinkPad X260 - i5-6G I 8GB I 192SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

