Ú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
- Veszprém és környéke adok-veszek-beszélgetek
- Szívós, szép és kitartó az új OnePlus óra
- PlayStation 5
- Apple iPhone 17 Pro Max – fennsík
- Elden Ring
- Véleményes teszt bizonygatja mennyit ér a Macbook Neo 8 GB RAM-ja
- Fotók, videók mobillal
- Hozd magaddal költözéskor a chatbotod!
- Steam topic
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- X1 Carbon Gen10 27% 14" FHD+ IPS i7-1260P 32GB 512GB NVMe ujjlolv IR kam gar
- Dell Latitude 5490 14",HD,i5-7300U,8GB,256GB SSD,WIN11
- LOQ 15IAX9 15.6" FHD IPS i5-12600HX RTX 4050 16GB 1TB NVMe magyar vbill gar
- Dell Latitude 5490 14",FHD,i5-8350U,8GB,256GB SSD,WIN11,LTE kártya, új akku
- 15.6-os 7.gen i5, Dell Latitude E5580 notebook olcsón!!!AkciÓÓ!
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
- Lenovo ThinkPad P1 Gen 4 i7 32GB RAM 1TB SSD NVIDIA RTX A2000 2560X1600 400nit Garancia 19 hónap
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Honor Magic6 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 13 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4648, 100% AKKSI
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
