@Jakub-Faifer Pozrel som sa na to podrobnejšie (verzia 26.10.0) a problém podľa mňa nie je v nižšej citlivosti ani v zvyku. Ide o spôsob, akým aplikácia rozlišuje gestá: podľa akých pravidiel rozhodne, či ide o posun, podržanie, zoom alebo rotáciu. Na zvyk sa nedá adaptovať, lebo aplikácia gesto vyhodnotí inak, než ho používateľ urobil, a to aj pri presnom a pomalom pohybe.
1. Podržanie (označenie bodu)
Podržanie trvá v aplikácii napevno 1000 ms. Systémové nastavenie Androidu „Oneskorenie dotyku a podržania“ (predvolene 400 ms) aplikácia ignoruje, takže jeho zmena nemá žiadny vplyv. Ak sa prst počas tejto sekundy pohne o viac ako pár milimetrov, podržanie sa zruší a zmení sa na posun mapy. Pri 2,5-násobne dlhšom čase, než je štandard systému, sa to stáva veľmi často. Preto treba tlačiť silno a držať prst úplne pokojne.
Návrh: použiť systémovú hodnotu (ViewConfiguration.getLongPressTimeout()) namiesto pevných 1000 ms.
2. Rotácia dvoma prstami
Zoom sa aktivuje, keď sa vzdialenosť prstov zmení o 10 dp, čo je asi 1,6 mm. Rotácia sa aktivuje pri otočení o 10°, ale len vtedy, ak ešte nebol aktivovaný zoom. Keď sa raz zapne zoom, rotácia je v danom geste zablokovaná až do zdvihnutia prstov. Opačne to neplatí: pri aktívnej rotácii zoom funguje ďalej.
Pri prstoch vzdialených 50 mm znamená otočenie o 10° posun každého prsta asi o 4,4 mm. Pri prirodzenom pohybe sa vzdialenosť prstov takmer vždy zmení o 1,6 mm skôr, takže vyhrá zoom a rotácia sa nespustí. Gesto, ktoré používateľ myslí ako rotáciu, aplikácia vyhodnotí ako zoom. Preto rotácia skoro nikdy nevyjde na prvý pokus.
Návrh: povoliť aktiváciu rotácie aj počas zoomu (ako v Google Mapách a na iOS), prípadne zvýšiť prah zoomu na 20 až 30 dp.
Nižšia citlivosť sama o sebe nie je problém. Problém je, že pri podržaní aplikácia ignoruje systémové nastavenie a pri dvoch prstoch zoom vždy prebije rotáciu. Obe úpravy sú malé a predvolenú citlivosť bežných gest nemenia. Vopred vďaka za vaš čas!