Ú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
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Mini-ITX
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- exHWSW - Értünk mindenhez IS
- Milyen NAS-t vegyek?
- A fociról könnyedén, egy baráti társaságban
- VGA kibeszélő offtopik
- BestBuy ruhás topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Gumi és felni topik
- További aktív témák...
- DJI NEO Fly More Combo drón 3 akkumulátorral +Care Refresh +táska
- Lenovo IdeaPad B50-80, 15,6" HD, i3-5005 CPU, 8GB DDR3, 128GB SSD, W11, Számla, 1 év garancia ( ol
- HP EliteBook 840 G3, 14" HD, i5-6300U CPU, 8GB DDR4, 128GB M.2 SSD, W11, Számla, 1 év garancia ( o
- HP EliteBook 840 G2, 14" HD, i5-5300U CPU, 8GB DDR3, 128GB SSD, W11, Számla, 1 év garancia ( olvas
- Dell Vostro 5481, 14" FHD, i5-8250U CPU, 8GB DDR4, 256GB NVMe SSD, W11, Számla, 1 év garancia ( ol
- GYÖNYÖRŰ iPhone 14 Pro 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS4237,100% Akksi
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- Samsung Galaxy S25 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

