[按鍵精靈]在屏幕上做輔助參考線(附源碼)
大家好,我是郭立員~,本文所講內容僅供學習參考,請勿非法使用。
講三種屏幕上顯示參考線的方法,基本都是基于懸浮窗,細節(jié)略有不同。
第一種:懸浮窗+斜線透明背景圖
①、做兩張對角線的“透明圖”。

做兩張的原因是考慮兩個點之間連線可能是左上方向,也可能是右上方向。這個需要通過坐標大小來決定選擇哪張背景圖。
②、懸浮窗的背景圖會根據懸浮窗大小縮放,所以圖片尺寸沒有具體要求,看著弄就行。
③、雖然懸浮窗是透明背景,但是鏤空部分只能看見,不能點擊,所以這個懸浮窗顯示幾秒就要關閉。
難點:比較坐標大小,確定背景圖,確定懸浮窗的起始位置坐標和寬高。
源碼:
PutAttachment?"/sdcard/pictures/",?"左下方.png"PutAttachment?"/sdcard/pictures/",?"右下方.png"Dim?x1?=?193Dim?y1?=?800Dim?x2?=?670Dim?y2?=?503Dim x, yIf x1 < x2?Then?? ??x?=?x1Else?? ??x?=?x2End IfIf y1 < y2?Then?? ??y?=?y1Else?? ??y?=?y2End IfDim?w?=?Abs(x2 - x1)Dim?h?=?Abs(y2 - y1)Dim pic_path?If x1 < x2 and y1 < y2?Then?? ??pic_path?=?"/sdcard/pictures/右下方.png"Else?? ??pic_path?=?"/sdcard/pictures/左下方.png"End IfFW.NewFWindow("浮窗名", x, y, w, h)FW.SetPicture("浮窗名", pic_path)FW.Show("浮窗名")Dim 顯示時間 =?5For?i?=?1?To 顯示時間? ? ShowMessage?"顯示倒計時:"?& 顯示時間 - i? ? Delay?1000NextFW.Close ("浮窗名")
第二種:懸浮窗+按鈕點陣
上面的方法需要制作透明的斜線圖片,還要通過附件把圖片放到設備當中,相對麻煩點,這種按鈕點陣的方法就不需要準備圖片了。
按鈕點陣其實就是用按鈕當做像素點,然后由多個像素點組成一條直線。
難點是由點到線的計算,包括左上方向和右上方向。
源碼:
Dim?x1 =?300Dim?y1 =?100Dim?x2 =?550Dim?y2 =?200Dim?x, yIf?x1 < x2 Then?? ??x?= x1Else?? ??x?= x2End?IfIf?y1 < y2 Then?? ??y?= y1Else?? ??y?= y2End?IfDim?w = Abs(x2 - x1)Dim?h = Abs(y2 - y1)If?w =?0?Then?? ??w?=?3?End?IfIf?h =?0?Then?h?=?3End?IfFW.NewFWindow("浮窗名", x, y, w, h)FW.Opacity?"浮窗名",?0If?w > h Then?? ??For?i =?1?To w Step?3? ? ? ??FW.AddButton("浮窗名",?"點陣"&i,?"", i, Abs(y-y1 +int(i*h/w)) ,?5,?5)? ? ? ??FW.SetBackColor?"點陣"?& i,?"0000FF"? ? ? ??FW.Show ("浮窗名")? ??NextElse?? ??For?i =?1?To h Step?3? ? ? ??FW.AddButton("浮窗名",?"點陣"&i,?"", Abs(x-x2 + int(i*w/h)) , i ,?5,?5)? ? ? ??FW.SetBackColor?"點陣"?& i,?"0000FF"? ? ? ??FW.Show ("浮窗名")? ??NextEnd?IfDim?顯示時間 =?5For?i =?1?To 顯示時間? ??ShowMessage?"顯示倒計時:"?& 顯示時間 - i? ??Delay?1000NextFW.Close ("浮窗名")
第三種:
上面兩個方法有個弊端就是懸浮窗看上去是透明的區(qū)域,但是不能點擊操作,遮蓋了底下的屏幕內容。
下面說的方法是以懸浮窗為點陣,這種方式的缺點是最多32個懸浮窗,也就是最多3個點,但是我測試太多個懸浮窗直接掉連接,所以使用20個懸浮窗做線(虛線)。
源碼
Dim?x1 =?300Dim?y1 =?40Dim?x2 =?600Dim?y2 =?500Dim?w = (x2 - x1) /?20Dim?h = (y2 - y1) /?20For?i =?1?To?20? ??FW.NewFWindow("浮窗名"&i, x1+int(i*w), y1+int(i*h),?10,?10)? ??FW.SetBackColor("浮窗名"&i,?"0000FF")? ??FW.Show("浮窗名"&i)NextDim?顯示時間 =?5For?i =?1?To 顯示時間? ??ShowMessage?"顯示倒計時:"?& 顯示時間 - i? ??Delay?1000NextFW.Close ("浮窗名")
=正文完=
更多內容可以查看往期文章
收費解答按鍵精靈安卓版的問題,有需要可以聯系我
我的QQ:453485278
按鍵QQ群11群:936858410
微信(xiaomu86119),或掃下方二維碼:

夜雨聆風
