大家好,我是公衆号3分鐘學堂的郭立員~
本期文章講一下給點擊位置加個提示,具體效果如圖所示:
所謂提示就是在點擊完以後加一個紅點,目的是讓我們知道有沒有點擊以及點擊了什麼位置。
當然這個功能有多少實用效果,其實沒多少,因為打開手機開發者模式中的指針功能,就可以實現同樣的功能,不過作為學習嘗試也還是不錯的。
一、實現原理
①命令的選擇
想要有提示的效果,就需要能夠在屏幕上顯示内容,在按鍵中能夠顯示的有showmessage、懸浮窗、動态ui、對話窗這些命令。
從可控性角度來說懸浮窗命令最合适,所以我也是選擇用懸浮窗實現這個效果。
②懸浮窗的設置
懸浮窗的位置、懸浮窗的大小、懸浮窗的背景色、懸浮窗的透明度、懸浮窗的圓角等
二、實現過程
這個過程其實就是解決懸浮窗設置的過程,那麼我們就逐個來說一下。
①懸浮窗的大小
這個數值最小是1,最大值無上限,不過沒必要做太多,一是不美觀,二是影響圖色命令的精準性。
注意:懸浮窗會遮擋畫面,影響圖色命令。
我測試效果是30*30,因為做了圓角處理也可以認為是半徑15的圓點。
②懸浮窗的位置
如果設置懸浮窗非常小,比如1個像素、2個像素這種,那麼可以直接用點擊的位置坐标,當做懸浮窗的位置坐标。
如果懸浮窗比較大,那麼點擊的坐标就必須是懸浮窗的中心位置,這裡要知道懸浮窗的位置參數是左上角坐标,并不是中心,所以需要向左上角移動半個懸浮窗大小的距離。
③懸浮窗形狀
關于形狀視個人喜好,方形、圓形、圓角矩形都可以。
④懸浮窗背景色、透明度
背景色我設置的紅色,透明度設置在50%以下
三、腳本源碼
TapShow(100,100)
Function TapShow(x,y)
Tap x, y
FW.NewFWindow "tap", x - 15, y - 15, 30, 30
FW.Show ("tap")
FW.SetBackColor("tap","0000FF")
FW.SetSmoothing("tap", 15)
FW.Opacity("tap", 30)
End Function
四、壓力測試
我做了連續随機點擊,發現無間隔執行命令時,100個随機點擊大概顯示四五十次,會有一半情況沒有顯示懸浮窗,應該說沒來得及顯示就下一個懸浮窗命令覆蓋了。
測試間隔100-200毫秒,是可以全部顯示的。
懸浮窗設置順序問題,要先執行show命令,也就是展示出懸浮窗,在設置懸浮窗的屬性。
測試過程發現如果最後執行show,“丢失”的懸浮窗會更多。
同時設置懸浮窗屬性的操作也起到一定的延時作用。
點擊和懸浮窗總共用時在幾十毫秒。
拓展:
懸浮窗也可以實現範圍描邊,懸浮窗把面當做線,分别當做四個邊,上右下左依次排列。
=正文完=
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!