[按键精灵]在屏幕上做辅助参考线(附源码)
大家好,我是郭立员~,本文所讲内容仅供学习参考,请勿非法使用。
讲三种屏幕上显示参考线的方法,基本都是基于悬浮窗,细节略有不同。
第一种:悬浮窗+斜线透明背景图
①、做两张对角线的“透明图”。

做两张的原因是考虑两个点之间连线可能是左上方向,也可能是右上方向。这个需要通过坐标大小来决定选择哪张背景图。
②、悬浮窗的背景图会根据悬浮窗大小缩放,所以图片尺寸没有具体要求,看着弄就行。
③、虽然悬浮窗是透明背景,但是镂空部分只能看见,不能点击,所以这个悬浮窗显示几秒就要关闭。
难点:比较坐标大小,确定背景图,确定悬浮窗的起始位置坐标和宽高。
源码:
PutAttachment "/sdcard/pictures/", "左下方.png"PutAttachment "/sdcard/pictures/", "右下方.png"Dim x1 = 193Dim y1 = 800Dim x2 = 670Dim y2 = 503Dim x, yIf x1 < x2 Thenx = x1Elsex = x2End IfIf y1 < y2 Theny = y1Elsey = y2End IfDim w = Abs(x2 - x1)Dim h = Abs(y2 - y1)Dim pic_pathIf x1 < x2 and y1 < y2 Thenpic_path = "/sdcard/pictures/右下方.png"Elsepic_path = "/sdcard/pictures/左下方.png"End IfFW.NewFWindow("浮窗名", x, y, w, h)FW.SetPicture("浮窗名", pic_path)FW.Show("浮窗名")Dim 显示时间 = 5For i = 1 To 显示时间ShowMessage "显示倒计时:" & 显示时间 - iDelay 1000NextFW.Close ("浮窗名")
第二种:悬浮窗+按钮点阵
上面的方法需要制作透明的斜线图片,还要通过附件把图片放到设备当中,相对麻烦点,这种按钮点阵的方法就不需要准备图片了。
按钮点阵其实就是用按钮当做像素点,然后由多个像素点组成一条直线。
难点是由点到线的计算,包括左上方向和右上方向。
源码:
Dim x1 = 300Dim y1 = 100Dim x2 = 550Dim y2 = 200Dim x, yIf x1 < x2 Thenx = x1Elsex = x2End IfIf y1 < y2 Theny = y1Elsey = y2End IfDim w = Abs(x2 - x1)Dim h = Abs(y2 - y1)If w = 0 Thenw = 3End IfIf h = 0 Thenh = 3End IfFW.NewFWindow("浮窗名", x, y, w, h)FW.Opacity "浮窗名", 0If w > h ThenFor i = 1 To w Step 3FW.AddButton("浮窗名", "点阵"&i, "", i, Abs(y-y1 +int(i*h/w)) , 5, 5)FW.SetBackColor "点阵" & i, "0000FF"FW.Show ("浮窗名")NextElseFor i = 1 To h Step 3FW.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 "显示倒计时:" & 显示时间 - iDelay 1000NextFW.Close ("浮窗名")
第三种:
上面两个方法有个弊端就是悬浮窗看上去是透明的区域,但是不能点击操作,遮盖了底下的屏幕内容。
下面说的方法是以悬浮窗为点阵,这种方式的缺点是最多32个悬浮窗,也就是最多3个点,但是我测试太多个悬浮窗直接掉连接,所以使用20个悬浮窗做线(虚线)。
源码
Dim x1 = 300Dim y1 = 40Dim x2 = 600Dim y2 = 500Dim w = (x2 - x1) / 20Dim h = (y2 - y1) / 20For i = 1 To 20FW.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 "显示倒计时:" & 显示时间 - iDelay 1000NextFW.Close ("浮窗名")
=正文完=
更多内容可以查看往期文章
收费解答按键精灵安卓版的问题,有需要可以联系我
我的QQ:453485278
按键QQ群11群:936858410
微信(xiaomu86119),或扫下方二维码:

夜雨聆风
