channel=""
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
linmo = {}
local linmo = linmo
local android = import('android.*')
function write(fileName, content)
file.write(fileName, content)
end
local function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
if panduan("/storage/emulated/0/林默/资源/林默.zip") ~= true then
gg.toast("正在下载资源林默.zip\n请耐心等待")
file.download("https://www.cccimg.com/down.php/4cd9a34a0143ad2bfc1ddc8aefdbead7.zip&lmttkx","/storage/emulated/0/林默/资源/林默.zip")
end
if panduan("/storage/emulated/0/林默/资源/CircleImageView.dex")~=true then
file.unzip("/storage/emulated/0/林默/资源/林默.zip","/storage/emulated/0/林默/资源/")
end
if (rlgg.VERSION < 2.09) then
gg.alert('请使用大于等于2.09版本的RLGG')
os.exit()
end
--local typeface = import("android.graphics.Typeface")
--local FontPath = "/storage/emulated/0/云烛/配置文件/GoogleSans-Bold.otf"--字体路径
--local font = typeface:createFromFile(FontPath)
local baseWindow = require 'floatingWindowManager2'
if not baseWindow.getContext then
gg.alert('请重启一下RLGG')
app.exit()
end
import "android.graphics.Color"
import "android.content.res.ColorStateList"
local context = baseWindow:getContext()
import "android.view.animation.TranslateAnimation"
import "android.view.animation.Animation"
import "android.animation.ArgbEvaluator"
import "android.animation.LayoutTransition"
import "android.graphics.drawable.GradientDrawable"
import "android.graphics.drawable.ClipDrawable"
import "android.media.MediaPlayer"
MediaPlayer=MediaPlayer()
import "java.io.File"
import "android.graphics.Typeface"
import "android.animation.LayoutTransition"
layoutTransition=LayoutTransition()
layoutTransition:setDuration(500)
import 'com.google.android.material.imageview.ShapeableImageView'
import 'com.google.android.material.shape.CornerFamily'
import 'com.google.android.material.materialswitch.MaterialSwitch'
import 'com.google.android.material.button.MaterialButton'
import 'com.google.android.material.dialog.MaterialAlertDialogBuilder'
import 'com.google.android.material.slider.Slider'
import 'com.google.android.material.snackbar.Snackbar'
import 'com.google.android.material.sidesheet.SideSheetDialog'
import 'com.google.android.material.bottomsheet.BottomSheetDialog'
import 'com.google.android.material.bottomsheet.BottomSheetBehavior'
import 'com.google.android.material.progressindicator.LinearProgressIndicator'
import 'com.google.android.material.progressindicator.CircularProgressIndicator'
import 'com.google.android.material.chip.ChipGroup'
import 'com.google.android.material.chip.Chip'
import 'com.google.android.material.radiobutton.MaterialRadioButton'
import 'com.google.android.material.checkbox.MaterialCheckBox'
import 'com.google.android.material.dialog.MaterialAlertDialogBuilder'
import 'androidx.coordinatorlayout.widget.CoordinatorLayout'
import 'androidx.core.widget.NestedScrollView'
import 'android.graphics.drawable.Icon'
import 'android.widget.LinearLayout'
import 'android.widget.Button'
import 'android.widget.TextView'
import 'android.widget.ScrollView'
import 'android.widget.RadioGroup'
import 'java.lang.CharSequence'
import 'java.lang.Boolean'
import 'java.lang.reflect.Array'
--Snackbar:make(ckou,"启动进程结束 欢迎使用",Snackbar.LENGTH_SHORT):setBackgroundTint("0xff161616"):show()
-- 浅色模式
baseWindow:darkMode()
print("本次运行包含套餐:个人版")
--Snackbar:make(ckou,"启动进程结束 欢迎使用",Snackbar.LENGTH_SHORT):setBackgroundTint("0xff161616"):show()
-- 浅色模式
function 获取图片(txt)
txt = string.url(txt,"de")
ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1)
if string.find(tostring(txt),"http") ~= nil then
if panduan("/sdcard/林默/资源/"..ntxt) == false then
file.download(txt,"/sdcard/林默/资源/"..ntxt)
else
if file.length("/sdcard/林默/资源/"..ntxt) <= 1 then
file.download(txt,"/sdcard/林默/资源/"..ntxt)
end
end
txt = "/sdcard/林默/资源/"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
function getRes(x)
return 获取图片("/sdcard/林默/资源/"..x)
end
function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)
return jianbians
end
function particle2(tx)
local webView = luajava.webView(function(webView)
webView:loadData([[
]]..tx..[[
]], 'text/html', 'UTF-8')
webView:setBackgroundColor(0x0)
end)
return webView
end
function getCorner(gtvb1,gtvb3,gtvb4,gtvb5,g1,g2,g3,g4)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
jianbians:setCornerRadii({g1,g1,g2,g2,g3,g3,g4,g4})
return jianbians
end
function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
return jianbians
end
context = app.context
window = context:getSystemService("window") -- 获取窗口管理器
function getLayoutParams()
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
layoutParams.type = LayoutParams.TYPE_PHONE
end
layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度
return layoutParams
end
linmo.controlFlip = function(control,time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", {0, 360})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end) end
linmo.controlRotation2 = function(control, time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
0, 360
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end)
end
linmo.controlRotation1 = function(control, time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
0, -360
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end)
end
linmo.controlRotation3 = function(control, to1,to2)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
to1, to2
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(3)
xuanzhuandonghua:start()
end)
end
--[[linmo.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end--]]
linmo.controlSmall = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
linmo.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX",{0, 0.4, 0.7, 1}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY",{0, 0.4, 0.7, 1}):setDuration(time):start()
end) end
linmo.controlSmallX = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
linmo.controlBigX = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
linmo.controlFlip = function(control,time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", {
0, 360
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end) end
xiaoyi={ }
xiaoyi.controlFlip2 = function(control,time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", {0, 360})
xuanzhuandonghua:setRepeatCount(1)
xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end
)
end
linmo.controlWater = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.8, 0.9, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1,0.8,0.9,1
}):setDuration(time):start()
end) end
linmo.controlWater2 = function ( control , time )
luajava.runUiThread ( function ( )
import "android.animation.ObjectAnimator"
ObjectAnimator ( ) : ofFloat ( control , "scaleX" , { 1 , 1.1 , 0.9 , 1 } ) : setDuration ( time ) : start ( )
ObjectAnimator ( ) : ofFloat ( control , "scaleY" , { 1 , 0.9 , 1.1 , 1 } ) : setDuration ( time ) : start ( )
end
)
end
slctb = getVerticalBG({0x00000000,0x00000000},15)
slcta = getVerticalBG({0xFF1185FC,0xFF1185FC},15)
function getButtonBG()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0xFF1185FC,0xFF1185FC},15))
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},15))
return selector
end
function getSelector()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slcta) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctb) -- 没点击的背景
return selector
end
hanshu = function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.x
y = mainLayoutParams.y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX)
mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(floatWindow, mainLayoutParams)
end
end
function 获取图片(txt)
txt = string.url(txt,"de")
ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1)
if string.find(tostring(txt),"http") ~= nil then
if panduan("/sdcard/林默/资源/"..ntxt) == false then
file.download(txt,"/sdcard/林默/资源/"..ntxt)
else
if file.length("/sdcard/林默/资源/"..ntxt) <= 1 then
file.download(txt,"/sdcard/林默/资源/"..ntxt)
end
end
txt = "/sdcard/林默/资源/"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
YoYoImpl = luajava.getYoYoImpl()
linmo.menu = function(sview)
菜单页数=#sview
当前分区={} 分区页数={}
侧边={} 功能区={} 顶边={
LinearLayout,
layout_height='match_parent',
layout_width='match_parent',
}
beij=getCorner({0xffffffff,0xffffffff},0,0,0xffFFE543,0,0,0,0)
侧边ui={
LinearLayout,
layout_width='wrap_content',
layout_height='match_parent',
id='cebians',
gravity='center',
}
jmbg={}
dbback=getVerticalBG({0xFFAD5A5A,0xFFAD5A5A},15)
for i = 1,菜单页数 do
分区页数[i]= #sview[i]
table.insert(顶边,{
LinearLayout,
orientation='vertical',
layout_height='match_parent',
layout_width='wrap_content',
gravity='center_horizontal',
{
TextView,
layout_weight=1,
layout_height='match_parent',
layout_width='wrap_content',
padding={'15dp','2dp','15dp','2dp'},
text=sview[i]['分页名字'],
textColor='0xff000000',
textSize='13sp',
gravity='center',
id='ding'..i,
elevation='2dp',
layout_margin='4dp',
onClick=function() linmo.controlFlip(_ENV["ding"..i] , 600 )
切换(i) end,
},
{LinearLayout,
layout_width='25dp',
layout_height='3dp',
layout_marginLeft='10dp',
layout_marginRight='10dp',
__onFinish=function(v)
_ENV['dingbar'..i]=v
end,
}
})
功能区[i]={}
jmbg[i]={}
local cebian = {
LinearLayout,
layout_height = "match_parent",
layout_width = "wrap_content",
orientation = "horizontal",
gravity = "center",
orientation='vertical',
padding={'4dp','0dp','0dp','0dp'},
}
local layoutm={
LinearLayout,
id = "layoutm"..i,
padding='4dp',
layout_width = "match_parent",
orientation = "vertical",
gravity = "center_horizontal",
}
for j = 1,分区页数[i] do
jmbg[i][j]={
getCorner({0x00000000,0x00000000},10,0,0xff000000,10,0,0,10),
getCorner({0xFFAD5A5A,0xFFAD5A5A},20,0,0xff000000,20,0,0,10),
}
cebian[#cebian+1] =
{
TextView,
id = "jm"..i..j,
background=jmbg[i][j][1],
text = sview[i][j]['分区名字'],
gravity = "center",
textSize = "12sp",
textColor = "0xff000000",
layout_height = "34dp",
layout_width = "68dp",
onClick=function()linmo.controlFlip(_ENV["jm"..i..j] , 600 )
分区(j) end
}
local menulayout={
LinearLayout,
layout_width='match_parent',
layout_height='wrap_content',
visibility = "gone",
orientation = "vertical",
id='menu'..i..j,
}
for k,v in pairs(sview[i][j]['功能配置']) do
table.insert(menulayout,v)
end
local menulayout=luajava.loadlayout(menulayout)
功能区[i][j]=menulayout
table.insert(layoutm,menulayout)
end
侧边[i] = luajava.loadlayout(
{
LinearLayout,
layout_height = "wrap_content",
layout_width = "wrap_content",
orientation='vertical',
layout_marginLeft='8dp',
layout_marginRight='dp',
layout_marginBottom='8dp',
{
ImageView,
layout_marginTop = "0dp",
layout_width = "80dp",
layout_height = "80dp",
src=获取图片(左上角人物),
},{
ScrollView,
layout_height = "match_parent",
layout_width = "wrap_content",
cebian
}})
table.insert(侧边ui,侧边[i])
local menus={
LinearLayout,
layout_width = "270dp",
layout_height = "300dp",
visibility = "gone",
orientation = "vertical",
id=luajava.ids['menus'],
background=菜单背景,
{
ScrollView,
fillViewport = "true",
--padding = "10dp",
gravity = "center",
layout_width = "match_parent",
layout_height = "300dp",
orientation = "horizontal",
layoutm
}}
_ENV["layout"..i] = luajava.loadlayout(menus)
end
顶边={LinearLayout,
layout_width='match_parent',
layout_height='match_parent',
layout_marginRight='100dp',
onClick=function() end,
onTouch=hanshu,
顶边
}
ckou = {
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
{ScrollView,
layout_height='300dp',
layout_width='70dp',
background=侧边背景,
侧边ui
}
}
for i = 1,菜单页数 do
ckou[#ckou+1] = _ENV["layout"..i]
end
function topSelect()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0x22161616,0x22161616},30))
selector:addState({
-android.R.attr.state_pressed
}, empty)
return selector
end
topbar = luajava.loadlayout({
LinearLayout,
layout_width="fill_parent",
layout_height="35dp",
background=getCorner({0xffffffff,0xffffffff},15,0,0xff232323,20,20,0,0),
onClick=function() end,
onTouch=hanshu,
{LinearLayout,
layout_width="35dp",
layout_height="match_parent",
gravity="center",
{
LinearLayout,
gravity="center",
background=获取图片(悬浮窗图标),
layout_width = "20dp",
layout_height = "20dp",
layout_marginLeft = "5dp",
onClick = 隐藏,
onTouch = hanshu,
}
},
{LinearLayout,
layout_width="wrap_content",
layout_height="match_parent",
gravity="center",
{
LinearLayout,
id='cvv',
layout_width='match_parent',
layout_height='match_parent',
gravity="center",
}
}
})
ckou = luajava.loadlayout(ckou)
floatWindow = {
FrameLayout,
id = "motion",
elevation = "10dp",
onTouch = hanshu,
onClick = function() end,
layout_width = "wrap_content",
orientation = "vertical",
gravity = "center_vertical",
layout_height = "wrap_content",
{LinearLayout,
orientation='vertical',
id='chuangk',
visibility='gone',
{--顶部栏
FrameLayout,
orientation = "horizontal",
padding = "2dp",
layout_height='35dp',
layout_width="fill_parent",
background=getCorner({0xffffffff,0xffffffff},20,0,0xffFFE543,25,25,25,25),
topbar,
{
LinearLayout,
layout_gravity="center_vertical|right",
padding={"2dp","2dp","8dp","2dp"},
layout_marginLeft='2dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
layout_width = "40dp",
layout_height = "24dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
{ImageView,
gravity = "right",
src=getRes("ca_dy"),
layout_height = "17dp",
layout_width = "17dp",
}
}
},{
FrameLayout,
orientation = "horizontal",
padding = "2dp",
layout_height='35dp',
layout_width="fill_parent",
background=getCorner({0xffffffff,0xffffffff},20,0,0xffFFE543,25,25,25,25),
顶边,
},
ckou,
},
{
ImageView,
id = "control",
background = 获取图片(悬浮窗图标),
layout_width = "40dp",
layout_height = "40dp",
onTouch = hanshu,
onClick = 隐藏,
}
}
local function invoke()
local ok
local RawX, RawY, x, y
mainLayoutParams = getLayoutParams()
floatWindow = luajava.loadlayout(floatWindow)
local function invoke2()
window:addView(floatWindow, mainLayoutParams)
cvv:addView(particle2(闪光标题))
block('end')
end
for i=1,#MSwitch do
SwitchColor(luajava.getIdView(MSwitch[i]),0xff0062FF,
0x28FFFFFF, --轨道(开,关)
0xFFFFFFFF,
0x88888888--深蓝色
)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
block('join')
local isMove
end
invoke(swib1,swib2)
if ffui~=nil then ffui() end
切换(1) 分区(1)
隐藏()
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
qhkai = 0
qiehuan = function()
if qhkai == 0 then
qhkai = 1
draw.remove()
luajava.runUiThread(function()
for k,v in pairs(floattable) do
if v==1 then
linmo.controlSmall(_ENV[k],400)
end
end
linmo.controlSmall(floatWindow,400)
end)
gg.sleep(400)
luajava.runUiThread(function()
floatWindow:setVisibility(View.GONE)
for k,v in pairs(floattable) do
if v==1 then
_ENV[k]:setVisibility(View.GONE)
end
end
end)
else
qhkai = 0
huiz()
draw.text('.', -9200,-9200)
luajava.runUiThread(function()
floatWindow:setVisibility(View.VISIBLE)
linmo.controlBig(floatWindow,400)
for k,v in pairs(floattable) do
if v==1 then
linmo.controlBig(_ENV[k],400)
_ENV[k]:setVisibility(View.VISIBLE)
end
end
end)
end
end
huiz()
draw.text('.', -9200,-9200)
while true do
if tuichu==1 then break end
if 音量键 then
jianting3(qiehuan)
gg.sleep(130)
end
end
luajava.setFloatingWindowHide(false)
luajava.setFloatingWindowHide(false)
end---menu
import'android.hardware.*';
---@type android.hardware.SensorEventListener
local sensor = luajava.createProxy('android.hardware.SensorEventListener', {
onSensorChanged = functions.debounce(function()
if 摇一摇==false then return 0 end
if qhkai~=0 then
qhkai=0
luajava.runUiThread(function()
floatWindow:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow)
end)
else
qhkai=1
luajava.newThread(function()
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow)
end)
gg.sleep(400)
luajava.runUiThread(function()
floatWindow:setVisibility(View.GONE)
end)
draw.remove()
gg.toast("隐藏")
end):start()
end
end,500)
})
dexloader=dex.loadfile('/sdcard/林默/资源/classes3.dex')
MySensorManager = dexloader:loadClass('yaocn.rlyun.yaoyiyao.MySensorManager')
luajava.runOnUiThread(function()
MySensorManager(context, sensor)
end)
摇一摇=true
linmo.controlRotation9 = function(control, time,t)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
time,t
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(400)
xuanzhuandonghua:start()
end)
end
namelist = {}
param1 = {}
floattable = {}
function 打开页面(name)
if _ENV['fenye'..name]==nil then gg.alert(name..'页面未创建') return 0 end
if floattable['fenye'..name]==1 then 关闭页面(name) return end
floattable['fenye'..name]=1
window = context:getSystemService("window") -- 获取窗口管理器
local function invoke(name,func1,func2)
local function invoke2()
window:addView(_ENV['fenye'..name], param1[name])
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
invoke(name,func1,func2)
end
function 关闭页面(name)
if _ENV['fenye'..name]==nil then gg.alert(name..'页面未创建') return 0 end
if floattable['fenye'..name]==0 then return 0 end
floattable['fenye'..name]=0
local function invoke2()
window:removeView(_ENV['fenye'..name])
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
function 创建页面(name,vs)
if type(vs)~='table' then gg.alert(name..'创建页面格式错误') os.exit() end
local tmp={LinearLayout,
layout_width='match_parent',
orientation='vertical'
}
for i=1,#vs do
table.insert(tmp,vs[i])
end
param1[name] = getLayoutParams2()
_ENV['fenye'..name] = luajava.loadlayout(
{
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
orientation='vertical',
gravity='center_horizontal',
background=luajava.loadlayout({
GradientDrawable ,
color = "0xffeeeeee" ,
cornerRadius = 15
} ),
padding={'10dp','5dp','10dp','5dp'},
{
TextView,
textColor='0xFF1185FC',
text = name,
textSize='14sp',
gravity = "center",
layout_width = "70dp",
layout_height = "wrap_content",
onClick=function()
local vis=luajava.getIdView(name)
if vis:getVisibility()==8.0 then
linmo.controlBig(vis,400)
vis:setVisibility(View.VISIBLE)
else
linmo.controlSmall(vis,400)
vis:setVisibility(View.GONE)
end
end,
onTouch=function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = param1[name].x
y = param1[name].y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
param1[name].x = tonumber(x) + (event:getRawX() - RawX)
param1[name].y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(_ENV['fenye'..name], param1[name])
end
end,
},
{ScrollView,
visibility='gone',
id=luajava.newId(name),
layout_width='120dp',
layout_height='250dp',
tmp
}
})
if type(_ENV['fenye'..name])~='userdata' then gg.alert(name..'生成失败') os.exit() end
end
paramt = {}
titletable = {}
corb = true
function getLayoutParams2()
local prm = luajava.new(WindowManager.LayoutParams)
layoutParams1 = prm
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY
else
layoutParams1.type = prm.TYPE_PHONE
end
layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams1.gravity = Gravity.CENTER -- 重力设置
layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度
layoutParams1.height = prm.WRAP_CONTENT -- 布局高度
return layoutParams1
end
function getjb()
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(15)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0xff397EF8,0xff25C4FD})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
return jianbians
end
function getjb()
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(15)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0xff397EF8,0xff25C4FD})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
return jianbians
end
tjb1=getjb()
tjb2=luajava.loadlayout {
GradientDrawable,
color = "#aa0082FF",
cornerRadius = 12
}
function chatbg()
local jb=getVerticalBG({0xaa161616,0xaa161616},17,2,0xffd8d8d8)
return jb
end
function getShape3()
jianbians = luajava.loadlayout({
GradientDrawable,
type = "linear",
angle = "135",
})
jianbians:setCornerRadius(22)
jianbians:setOrientation(GradientDrawable.Orientation.TL_BR)
jianbians:setColors({
0x55ffffff,0x55ffffff
})
jianbians:setStroke(5,0xffffffff)--边框宽度和颜色
return jianbians
end
function chatbg2()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, luajava.loadlayout {
GradientDrawable,
color = "#aa2D8BFF",
cornerRadius = 12
}) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, getjb()) -- 没点击的背景
return selector
end
function visi (tid , ttid)
vibra:vibrate(4)
local tview = luajava.getIdValue (tid)
local ttview = luajava.getIdValue (ttid)
if not tview then
return 0
end
if tonumber (tostring (tview : getVisibility ())) == 8.0 then
YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid])
linmo.controlRotation9(boxpic[tid],90,0)
else
linmo.controlRotation9(boxpic[tid],0,90)
end
end
function visi2 (tid , ttid)
local tview = luajava.getIdValue (tid)
local ttview = luajava.getIdValue (ttid)
if not tview then
return 0
end
if tonumber (tostring (tview : getVisibility ())) == 8.0 then
tview : setVisibility (View.VISIBLE)
else
tview : setVisibility (View.GONE)
end
end
function jybg(color,jiao)
return luajava.loadlayout{GradientDrawable,color=color,
cornerRadius=jiao}
end
boxes = {} boxpic = {}
function linmo.box (views)
local tid = "box"..guid ()
boxpic[tid] = luajava.loadlayout {
ImageView ,
background = getRes("right"),
layout_width = "24dp" ,
layout_height = "24dp" ,
}
local ttid = tid.."6"
local t1id = guid ()
firadio = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "4dp" ,
layout_marginBottom = "3dp" ,
gravity = "center" ,
background=luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","6dp","0dp"
},
orientation = "vertical" ,
onTouch = function() visi2 (tid , ttid) visi(tid,ttid)
end,
LayoutTransition=layoutTransition,
}
if type (views [1]) == "string" or type (views [1]) == "number" then
firadio [# firadio + 1] = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "40dp" ,
gravity = "center_vertical" ,
layout_marginTop = "2dp" ,
layout_marginLeft='2dp',
layout_marginRight='2dp',
elevation='2dp',
layout_marginBottom = "2dp" ,
LayoutTransition=layoutTransition,
onClick = function ()
visi2 (tid , ttid)
visi (tid , ttid)
end
,
background = luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView , text = views [1] ,
textSize = "13sp" ,
layout_marginLeft = "10dp" ,
layout_width = "match_parent" ,
layout_weight=1,
textColor = "#333333" ,
gravity = "left" ,
Typeface=font,
},{
LinearLayout ,
padding={"0dp","0dp","10dp","0dp"},
layout_width = "30dp" ,
layout_height = "30dp" ,
gravity = "center",
boxpic[tid],
}
} else
gg.alert ("linmo.box的table内第一个元素必须是string") os.exit ()
end
radios = {
LinearLayout ,
layout_marginLeft = "0dp" ,
layout_marginRight = "0dp" ,
orientation = "vertical" ,
visibility = "gone" ,
id = luajava.newId (tid) ,
padding = "0dp" ,
layout_width = 'fill_parent' ,
LayoutTransition=layoutTransition,
}
for i = 2 , # views do
radios [# radios + 1] = views [i]
end
boxes[tid] = luajava.loadlayout(radios)
firadio [# firadio + 1] = boxes[tid]
_ENV [t1id] = luajava.loadlayout (firadio)
return _ENV [t1id]
end
corbk = true
当前ui = 1
function 分区(x)
当前分区[当前ui]=x
luajava.runUiThread(function()
for i=1,分区页数[当前ui] do
_ENV['menu'..当前ui..i]:setVisibility(View.GONE)
_ENV['jm'..当前ui..i]:setTextColor(0xff000000)
_ENV['jm'..当前ui..i]:setBackground(jmbg[当前ui][i][1])
end
_ENV['menu'..当前ui..当前分区[当前ui]]:setVisibility(View.VISIBLE)
_ENV['jm'..当前ui..当前分区[当前ui]]:setTextColor(0xffffffff)
_ENV['jm'..当前ui..当前分区[当前ui]]:setBackground(getCorner({0xFF1185FC,0xFF1185FC},10,0,0xff000000,10,0,0,10))
linmo.controlBigY(_ENV['jm'..当前ui..当前分区[当前ui]],600)
end)
end
function 切换(x)
当前ui = x
luajava.runUiThread(function()
if 当前分区[当前ui]==nil then
分区(1)
end
for i = 1,菜单页数 do
_ENV["ding"..i]:setTextColor(0xffD3DDE7)
_ENV['dingbar'..i]:setBackground(empty)
_ENV["layout"..i]:setVisibility(View.GONE)
侧边[i]:setVisibility(View.GONE)
end
_ENV["ding"..当前ui]:setTextColor(0xFFAD5A5A)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
_ENV['dingbar'..当前ui]:setBackground(dbback)
linmo.controlBigY(_ENV['dingbar'..当前ui],600)
侧边[当前ui]:setVisibility(View.VISIBLE)
end)
end
显示 = 0
beij2 = luajava.loadlayout({
GradientDrawable,
color = "#001E1C27",
cornerRadius = 10
})
function linmo.text(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#545454" end
if not size then size = "12sp" end
return luajava.loadlayout(
{
TextView,
text = txt,
textSize = size,
textColor = color,
layout_width = "match_parent",
padding={'10dp','0dp','0dp','0dp'}
})
end
显示 = 0
function 隐藏()
already=true
luajava.runUiThread(function()
if tonumber(tostring(chuangk:getVisibility())) == 8.0 then
control:setVisibility(View.GONE)
显示 = 1
chuangk:setVisibility(View.VISIBLE)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(500):playOn(floatWindow)
floatWindow:setBackground(beij)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
window : updateViewLayout (floatWindow , mainLayoutParams)
else
显示 = 0
luajava.startThread(function()
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(500):playOn(floatWindow)
end)
gg.sleep(500)
luajava.runUiThread(function()
chuangk:setVisibility(View.GONE)
floatWindow:setBackground(beij2)
control:setVisibility(View.VISIBLE)
_ENV["layout"..当前ui]:setVisibility(View.GONE)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
window : updateViewLayout (floatWindow , mainLayoutParams)
YoYoImpl:with("FadeIn"):duration(400):playOn(floatWindow)
end)
end)
end
end)
end
import("android.media.AudioManager")
audi = context:getSystemService("audio")
audiotype = {
AudioManager.STREAM_ALARM, --手机闹铃的声音
AudioManager.STREAM_MUSIC, --手机音乐的声音
AudioManager.STREAM_NOTIFICATION, --系统提示的通知
AudioManager.STREAM_RING, --电话铃声的声音
AudioManager.STREAM_SYSTEM, --手机系统的声音
AudioManager.STREAM_VOICE_CALL, --语音电话的声音
AudioManager.STREAM_DTMF, --DTMF音调的声音
}
yinl = {}
for i = 1,#audiotype do
yinl[i] = {}
yinl[i].type = audiotype[i]
yinl[i].min = audi:getStreamMinVolume(audiotype[i])
yinl[i].max = audi:getStreamMaxVolume(audiotype[i])
yinl[i].now = audi:getStreamVolume(audiotype[i])
end
function jianting2()
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].min = audi:getStreamMinVolume(audiotype[i])
yinln[i].max = audi:getStreamMaxVolume(audiotype[i])
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
gg.alert("up")
elseif yinln[i].now < yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_RAISE,0)
gg.alert("down\n"..yinln[i].now.."\n"..yinl[i].now)
end
end
end
yltype = 0
function jianting3(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 1 then
yltype = 0
func()
end
elseif yinln[i].now < yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 0 then
yltype = 1
func()
end
end
end
end
function jianting(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now >= yinl[i].max then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
end
if yinln[i].now > yinl[i].now then
audi:setStreamVolume(yinln[i].type,yinl[i].now,0)
func()
end
end
end
function guid()
seed = {
'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
}
tb = {}
for i = 1,32 do
table.insert(tb,seed[math.random(1,16)])
end
sid = table.concat(tb)
return string.format('%s%s%s%s%s',
string.sub(sid,1,8),
string.sub(sid,10,12),
string.sub(sid,21,22))
..string.format('%s%s%s%s%s',
string.sub(sid,1,6),
string.sub(sid,21,25)
)
end
local function exit()
tuichu = 1
luajava.setFloatingWindowHide(false)
luajava.post(function()
window:removeView(floatWindow)
for k,v in pairs(floattable) do
if v==1 then
window:removeView(_ENV[k])
end
end
end)
end
setExitEvent(exit)
linmo.controlWater = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.8, 0.9, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1,0.8,0.9,1
}):setDuration(time):start()
end) end
linmo.controlSmall = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
linmo.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
linmo.controlBigY = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
MSwitch = {}
function linmo.switch(name,func1,func2)
ID = name..guid()
MSwitch[#MSwitch+1] = ID
Checked = false
if name=="音量键隐藏UI" then
音量键 = true
Checked = true
end
if name=="摇一摇隐藏UI" then
摇一摇 = true
Checked = true
end
rest = luajava.loadlayout({
LinearLayout,
layout_width="fill_parent",
layout_height = "47dp",
gravity = "center",
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "40dp",
gravity = "center",
elevation = "2dp",
layout_marginRight = "4dp",
layout_marginLeft = "4dp",
background = luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView,
Typeface=font,
gravity = "top",
text = name,
textColor = "0xff000000",
textSize = "13sp",
layout_weight = 1,
layout_width = 'fill_parent',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
MaterialSwitch,
id = luajava.newId(ID),
layout_weight = 1,
checked = Checked,
layout_width = 'fill_parent',
layout_height = 'wrap_content',
onCheckedChange = function(compoundButton, isChecked)
luajava.newThread(function()
if isChecked then
pcall(func1)
else
pcall(func2)
end
end):start()
end
}
}
})
return rest
end
import "android.graphics.Color"
import "android.content.res.ColorStateList"
function SliderColor(id,color1,color2,color3)
id:setTrackActiveTintList(ColorStateList({{}},{color1}))
id:setTrackInactiveTintList(ColorStateList({{}},{color2}))
id:setThumbTintList(ColorStateList({{}},{color3}))
end
function SwitchColor(id,color1,color2,color3,color4)
id:setTrackTintList(ColorStateList({{android.R.attr.state_checked},{}},{color1,color2}))
id:setThumbTintList(ColorStateList({{android.R.attr.state_checked},{-android.R.attr.state_checked}},{color3,color4}))
end
linmo.controlRotation9 = function(control, time,t)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
time,t
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(400)
xuanzhuandonghua:start()
end)
end
buts={}
function linmo.button(txt,func,txtc)
if not txt then txt = "未设置" end
if not txtc then txtc="0xff000000" end
local tid="Cbutton"..guid()
buts[tid]=luajava.loadlayout({
LinearLayout,
layout_width = 'match_parent',
layout_height = "40dp",
gravity = "center",
{
LinearLayout,
layout_width = 'match_parent',
layout_height = "35dp",
gravity = "center",
elevation = "2dp",
layout_marginRight = "4dp",
layout_marginLeft = "4dp",
background = getButtonBG(),
padding = {
"0dp","0dp","6dp","0dp"
},
onClick = function()
linmo.controlWater(buts[tid],300)
luajava.newThread(func):start() end,
{
TextView,
Typeface=font,
gravity = "top",
text = txt,
textColor = txtc,
textSize = "13sp",
layout_weight = 1,
layout_width = 'fill_parent',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
ImageView,
layout_weight = 1,
src=getRes("heir"),
ColorFilter = "0xffeeeeee",
layout_marginRight = "4dp",
layout_height="30dp",
layout_gravity = "center",
layout_width="30dp",
}
}
})
return buts[tid]
end
function getButtonBG()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0x34000400,0x34000400},17))
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},17))
return selector
end
function linmo.intcheck(name,func1,func2)
nid = name..guid()
swits[nid]={
getVerticalBG({0xff0091FF,0xff4F82FF},18),
getVerticalBG({0x88161616,0x88161616},18),
false,
}
local func = 开关5(name,func1,func2,nid)
if not name then name = "未设置" end
_ENV[nid.."k"]=luajava.loadlayout({
TextView,
id = luajava.newId(nid.."k"),
background = swits[nid][2],
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding={"13dp","3dp","13dp","3dp"},
gravity="center",
text="关",
textColor="#ffffff",
textSize="13sp",
})
_ENV[nid.."g"]=luajava.loadlayout({LinearLayout,
{
TextView,
layout_marginLeft="7dp",
id = luajava.newId(nid.."g"),
background = empty,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding={"13dp","3dp","13dp","3dp"},
gravity="center",
text="开",
textColor="#ffffff",
textSize="13sp",
}})
local rest = luajava.loadlayout({
FrameLayout,
layout_width = 'wrap_content',
layout_height = "wrap_content",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding={"0dp","0dp","0dp","0dp"},
{
LinearLayout,
layout_marginLeft="8dp",
layout_marginTop="3dp",
layout_marginBottom="3dp",
layout_marginRight="6dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
layout_gravity="center",
--background = randbg2(),
orientation="vertical",
{
TextView,
gravity = "left",
text = name,
textColor="#000000",
textSize = "11sp",
layout_height="wrap_content",
layout_width = '100dp',
},
{
LinearLayout,
id = luajava.newId(nid),
background = getVerticalBG({0xe84B7CFF,0x88974BFF},18,4,0xff69C2FF),
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding = "5dp",
_ENV[nid.."k"], _ENV[nid.."g"]
}},
{LinearLayout,
layout_height="15dp",
layout_width="15dp",
layout_marginLeft="4dp",
layout_marginTop="14dp",
},{LinearLayout,
layout_height="20dp",
layout_width="30dp",
layout_gravity="right|bottom"
}
})
return rest
end
function 开关5(name,func1,func2,nid)
local sname = nid
local localname=name
name = nid..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
swits[sname][3]=true
vibra:vibrate(14)
luajava.runUiThread(function()
luajava.getIdValue(sname.."k"):setBackground(empty)
luajava.getIdValue(sname.."g"):setBackground(swits[sname][1])
YoYoImpl:with("FadeInLeft"):duration(400):playOn(_ENV[nid.."g"])
end)
_ENV[name] = "开"
pcall(func1)
else
swits[sname][3]=false
vibra:vibrate(14)
luajava.runUiThread(function()
luajava.getIdValue(sname.."k"):setBackground(swits[sname][2])
luajava.getIdValue(sname.."g"):setBackground(empty)
YoYoImpl:with("FadeInRight"):duration(400):playOn(_ENV[nid.."k"])
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
end
import "android.graphics.Color"
import "android.content.res.ColorStateList"
function linmo.check(cklist)
if #cklist==0 then return nil end
local rest = {
LinearLayout,
layout_width = 'match_parent',
layout_height = "wrap_content",
gravity = "center",
orientation="vertical",
}
for i = 1, #cklist,2 do
local tempTable = {LinearLayout,
layout_width = 'match_parent',
layout_height = "wrap_content",
gravity = "left",
orientation="horizontal"
}
for j = 0, 1 do
if cklist[i + j] ~= nil then
local name = cklist[i + j][1]
local func1 = cklist[i + j][2]
local func2 = cklist[i + j][3]
if not name then name = "未设置" end
rstt = linmo.intcheck(name,func1,func2)
table.insert(tempTable, rstt)
else
table.insert(tempTable, {LinearLayout,
layout_width = 'match_parent',
layout_weight=1,})
end
end
table.insert(rest, tempTable)
end
return luajava.loadlayout(rest)
end
function 开关(name,func1,func2)
local localname=name
if func1 == nil then func1 = function() end end
if func2 == nil then func2 = function() end end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
_ENV[name] = "开"
pcall(func1)
else
_ENV[name] = "关"
pcall(func2)
end
end
end
end
function linmo.intcheck(name,func1,func2,size)
nid = name..guid()
lname=name
local func = 开关(nid,func1,func2,lname)
if not name then name = "未设置" end
ID = name..guid()
local rest = {
LinearLayout,
layout_width = 'match_parent',
layout_weight=1,
layout_height = "42dp",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
{
LinearLayout,
padding="3dp",
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
{
CheckBox,
id = luajava.newId(ID),
layout_height = "32dp",
layout_width = "32dp",
checkedState="indeterminate",
buttonTintList=ColorStateList({{android.R.attr.state_checked},{-android.R.attr.state_checked}},{0xFf000000,0xff000000},{0xFF1185FC,0xFF1185FC}),
onClick=function()
luajava.newThread(function()
pcall(func)
end):start() end
},
{
TextView,
text=name,
textSize = "13sp",
textColor="0xff000000",
layout_width = "match_parent",
--layout_weight=1,
}
}
}
return rest
end
radiog={}
function linmo.radio (cklist)
if not radoff then
radon=getVerticalBG({0xffffffff,0xffffffff},360,20,0xFF000000)
radoff=getVerticalBG({0x00ffffff,0x00ffffff},360,8,0xffaaaaaa)
end
local rid=guid()
radiog[rid]={}
rest = {
LinearLayout ,
layout_width = 'match_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "10dp" ,
gravity = "top" ,
orientation = "vertical" ,
}
if type (cklist [1]) == "string" then
rds=2
rest [# rest + 1] = {
TextView ,
gravity = "left" ,
padding="5dp",
text = cklist [1] ,
textSize = "13sp" ,
textColor = "#000000" ,
layout_width = 'fill_parent' ,
layout_height = 'wrap_content' ,
layout_marginLeft = "10dp" ,
layout_marginRight = "5dp" ,
layout_marginTop = "0dp" ,
layout_marginBottom = "0dp" ,
}
else
rds=1
end
local restt={
LinearLayout ,
layout_width = 'match_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "10dp" ,
gravity = "top" ,
orientation = "vertical" ,
background=luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","15dp","6dp"
},}
for i = rds , # cklist do
local name = cklist [i] [1]
local func = cklist [i] [2]
if not name then
name = "未设置"
end
nid = name..guid ()
radiog[rid][nid]=false
local func = radin(rid,nid,func)
local tid = nid..guid ()
_ENV [tid] = luajava.loadlayout ( {
LinearLayout ,
layout_width = '250dp' ,
layout_height = "30dp" ,
layout_marginTop = "5dp" ,
layout_marginBottom = "15dp" ,
layout_marginLeft = "4dp" ,
layout_marginRight = "10dp" ,
gravity = "center_vertical" ,
onClick = function ()
linmo.controlWater (_ENV [tid] , 200)
func()
end
,
{
ImageView ,
id = luajava.newId (nid) ,
layout_width = '20dp' ,
layout_height = "20dp" ,
layout_marginLeft = "5dp" ,
layout_marginRight = "0dp" ,
background =radoff ,
} , {
TextView ,
gravity = "top" ,
text = name ,
textSize="13sp",
textColor = "#000000" ,
layout_width = 'wrap_content' ,
layout_height = 'wrap_content' ,
layout_marginLeft = "10dp" ,
layout_marginRight = "5dp" ,
}
})
restt [# restt + 1] = _ENV [tid]
end
rest [# rest + 1] = restt
return luajava.loadlayout (rest)
end
function radin(rid,nid,func)
return function()
for k,v in pairs(radiog[rid]) do
colorvs[k]={false,"rad"}
luajava.getIdValue(k):setBackground(radoff)
if k==nid and v~=true then
luajava.getIdValue(k):setBackground(radon)
colorvs[k]={true,"rad"}
v=true
luajava.newThread(func):start()
end
end
end
end
colorvs={}
当前ui=1
function changeColor(co)
控件颜色=co
luajava.runUiThread(function()
_ENV["jm"..当前ui.."t"]:setTextColor(控件颜色)
_ENV["jm"..当前ui.."p"]:setColorFilter(控件颜色)
luajava.getIdView("backv"):setColorFilter(控件颜色)
checkbg = getShape2(45,{控件颜色,控件颜色},4,控件颜色)
radon=getVerticalBG({0xffffffff,0xffffffff},360,20,控件颜色)
for k,v in pairs(colorvs) do
if v[1]==true then
if v[2]=="switch" then
luajava.getIdValue(k):setBackground(checkbg)
elseif v[2]=="box" then
boxpic[k]:setColorFilter(控件颜色)
elseif v[2]=="txt" then
luajava.getIdValue(k):setTextColor(控件颜色)
elseif v[2]=="img" then
luajava.getIdValue(k):setColorFilter(控件颜色)
elseif v[2]=="rad" then
luajava.getIdValue(k):setBackground(radon)
elseif v[2]=="seek" then
luajava.getIdView(k):setProgressDrawable( getVerticalBG({控件颜色,控件颜色},45))
end
end
end
end)
end
currentIndex = 1
-- 定义一个函数来打印当前遍历到的table项,并更新索引位置
function 预置颜色()
-- 获取当前遍历到的项
local currentItem = 颜色表[currentIndex]
-- 打印当前项
changeColor(currentItem)
-- 更新索引位置
currentIndex = currentIndex + 1
-- 如果索引已经达到最大值,则重置为1,回到第一项
if currentIndex > #颜色表 then
currentIndex = 1
end
end
function linmo.image(img,height,width,pad,func)
if not func then func=function() end end
if not pad then pad="0dp" end
if not height then height="80dp" end
if not width then width="80dp" end
return luajava.loadlayout({
LinearLayout,
layout_height="wrap_content",
layout_width="fill_parent",
gravity="center",
{
ImageView,
layout_height=height,
layout_width=width,
padding=pad,
src=获取图片(img),
onClick=function() luajava.newThread(func):start() end,
}})
end
function linmo.edit (name , hint)
_ENV [name] = name..guid ()
if not hint then
hint = name
end
rest = luajava.loadlayout ( {
LinearLayout ,
layout_width = 'fill_parent' ,
{
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "40dp" ,
layout_marginTop = "5dp" ,
layout_marginBottom = "5dp" ,
layout_marginLeft = "0dp" ,
layout_marginRight = "0dp" ,
gravity = "center_vertical" ,
{
EditText ,
background = luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","6dp","0dp"
},
gravity = "center" ,
hint = hint ,
textColor=ffffff,
textSize = "13sp",
layout_height = "40dp" ,
layout_marginBottom = "-2dp",
id=luajava.newId(_ENV [name]),
layout_width = 'fill' ,
}
}
})
luajava.getIdValue(_ENV [name]):setHintTextColor(0xff545454)
return rest
end
function linmo.getedit (name)
edit = tostring (luajava.getIdValue (_ENV [name]) : getText ())
return edit
end
function linmo.setedit (name , txt)
txt = tostring (txt)
luajava.runUiThread (function ()
luajava.getIdValue (_ENV [name]) : setText (txt)
end
)
end
chazhi={} chajv={}
function linmo.seek(name,bian,smin,smax,nows)
_ENV[bian] =nows
smin=tonumber(smin) smax=tonumber(smax)
if _ENV[bian] == nil then _ENV[bian] = 1.0 end
if not name then name = "未设置" end
local names = name..guid()
kid=guid().."sk"
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'match_parent',
layout_hight = "match_parent",
{
LinearLayout,
id=luajava.newId(kid),
layout_width = 'match_parent',
layout_hight = "match_parent",
layout_marginTop = "3dp",
layout_marginBottom = "3dp",
layout_marginLeft = "5dp" ,
layout_marginRight = "5dp" ,
gravity = "center_vertical",
elevation='3dp',
background = luajava.loadlayout {
GradientDrawable ,
color = 0xffffffff ,
cornerRadius = 15
} ,padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView,
padding={"5dp","10dp","0dp","10dp",},
gravity = "top",
textColor='0xFF1185FC',
text = name,
id = luajava.newId(names),
layout_width = '100dp',
--layout_marginLeft = "5dp",
layout_marginRight = "0dp",
},
{
Slider,
thumbHeight='23dp',
trackHeight='15dp',
trackStopIndicatorSize='0dp',
tickVisible=false,
__onFinish=function(v)
v:setTrackActiveTintList(ColorStateList({{},},{0xFF1185FC}))
v:setTrackInactiveTintList(ColorStateList({{},},{0xFF1185FC}))
v:setThumbTintList(ColorStateList({{},},{0xFF1185FC}))
luajava.setInterface(v, 'addOnChangeListener',
function(SeekBar, var2, var3)
_ENV[bian] = var2
end)
end,
layout_width = 'match_parent',
id=luajava.newId(name.."seekbar"),
valueFrom=smin,
valueTo=smax,
value=nows,
stepSize=1.0,
}
}})
luajava.getIdView(name..'seekbar'):setHaloRadius(100)--拖动时背景阴影大小
return rest
end
import('android.content.res.ColorStateList')
local swfuncs={}
swcDraw=ColorStateList({
{android.R.attr.state_checked},
{-android.R.attr.state_checked},
}, {
0xff0062ff,
0x33d7d7d7,
})
swcThumb=ColorStateList({
{android.R.attr.state_checked},
{android.R.attr.state_pressed},
{-android.R.attr.state_pressed},
}, {
0xffffffff,
0xFF1185FC,
0xFF1185FC
})
swfuncs={}
function linmo.text(text,color,size,isjz)
if not color then color="#161616" end
if isjz then
return luajava.loadlayout(
{
TextView,
text=text,
textColor=color,
textSize=size,
gravity="center",
layout_height="wrap_content",
layout_width="match_parent",
autoSizeTextType="uniform",
})
else
return luajava.loadlayout({
TextView,
text=text,
textColor=color,
textSize=size,
layout_height="wrap_content",
layout_width="match_parent",
autoSizeTextType="uniform",
})
end
end
function getShape8()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0xFF1185FC,0xffffffff,
})
jianbians:setOrientation(GradientDrawable.Orientation.BL_TR)
return jianbians
end
pe0 = getShape8()
function linmo.line()
return luajava.loadlayout({
LinearLayout,
layout_width = "fill_parent",
layout_height = "2dp",
background = pe0,
})
end
wyyget="http://120.24.160.246:3000/"
function huoqu(txt)
return table.json(gg.makeRequest(wyyget.."song/url/v1?id="..txt.."&level=standard").content)
end
function souyy(txt)
return table.json(gg.makeRequest("http://music.163.com/api/search/get?s="..txt.."&type=1&offset=0&total=true&limit=10").content)
end
function develo(tabb)
gg.alert(tostring(tabb))
end
function develo2(tabb)
gg.copyText(tostring(tabb))
end
function tablekIn(tbl, key)
if tbl == nil then
return false
end
for k, v in pairs(tbl) do
if k == key then
return true
end
end
return false
end
function getbg()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(15)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0xffffffff,0xffffffff})
jianbians:setStroke(3,"0xFF1185FC")--边框宽度和颜色
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, luajava.loadlayout {
GradientDrawable,
color = "0xaa161616",
cornerRadius = 12
}) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, jianbians) -- 没点击的背景
return selector
end
function searchmusic()
if not lasttm then
lasttm = os.time()
else
if os.time() - lasttm <= 5 then
gg.alert("请在" .. (5 - (os.time() - lasttm)) .. "秒冷却后搜索")
return 0
end
end
if not wryt then
else
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):removeView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
end
mustxt = luajava.getIdView("搜索"):getText()
if string.len(tostring(mustxt)) <= 2 or tostring(mustxt) == nil then
gg.alert("至少输入2个字符")
return 0
end
mustxt = tostring(mustxt)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.VISIBLE)
luajava.getIdView("stxt"):setVisibility(View.GONE)
end)
lasttm = os.time()
mustable = souyy(mustxt)
mustable = mustable.result.songs
-- print(mustable)
musnames = {}
musids = {}
musarts = {}
musictable = {}
for k, v in pairs(mustable) do
musictable[#musictable + 1] = v
end
-- gg.alert(tostring(mustable))
-- gg.alert(tostring(musictable))
-- gg.copyText(tostring(mustable))
-- gg.alert(#musictable)
wrfun = {}
wryt = {
LinearLayout,
id = luajava.newId("搜索结果"),
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
orientation = "vertical"
}
for i = 1, #musictable do
musid = musictable[i].id
-- print('musid',musid)
-- musid = musictable[i].album.id
-- print('musid',musid)
musids[#musids + 1] = musid
musname = musictable[i].name
if tablekIn(musictable[i], "transNames") ~= false then
musname = musname .. "\n(" .. musictable[i].transNames[0] .. ")"
end
musnames[#musnames + 1] = musname
musart = musictable[i].artists[0].name
musarts[#musarts + 1] = musart
wryt[#wryt + 1] = {
LinearLayout,
orientation = "vertical",
layout_marginTop = "2dp",
layout_marginBottom = "2dp",
background = getbg(),
id = luajava.newId("音" .. musid),
onClick = function()
thread = luajava.getThread(function()
bofang(musname, musid)
end)
thread:start()
end,
{
TextView,
layout_marginTop = "5dp",
textSize = "15sp",
textColor = "0xFF1185FC",
layout_marginBottom = "0dp",
text = musname,
layout_hight = "10dp",
layout_width = "228dp",
gravity = "center"
},
{
TextView,
layout_marginTop = "0dp",
textColor = "#000000",
textSize = "12sp",
layout_marginBottom = "5dp",
text = musart,
layout_hight = "10dp",
layout_width = "200dp",
gravity = "center"
}
}
-- gg.sleep(50)
wryt[#wryt].onClick = function()
-- (function()
-- bofang(musnames[i] .. musarts[i], musids[i])
-- end):start()
luajava.startThread(function()
bofang(musnames[i] .. musarts[i], musids[i])
end)
end
end
wyr = luajava.loadlayout(wryt)
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):addView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.GONE)
luajava.getIdView("stxt"):setVisibility(View.VISIBLE)
end)
-- gg.alert(tostring(wrfun))
end
function bofang(gqmz, gdmn)
luajava.runUiThread(function()
luajava.getIdView("搜索结果"):setVisibility(View.GONE)
luajava.getIdView("加载"):setVisibility(View.VISIBLE)
end)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..gdmn..".mp3" or huoqu(gdmn).data[0].url)
-- gg.sleep(2000)
luajava.runUiThread(function()
luajava.getIdView("加载"):setVisibility(View.GONE)
luajava.getIdView("搜索结果"):setVisibility(View.VISIBLE)
end)
end
stxt = {
TextView,
text = "搜索",
textColor="#000000",
background=getbg(),
layout_height="match_parent",
visibility = "visible",
gravity="center",
layout_marginRight="10dp",
id = luajava.newId("stxt"),
layout_marginLeft = "3dp",
textSize = "15sp",
padding={"13.5dp","0dp","13.5dp","0dp"},
onClick = function()
thread = luajava.getThread(function()
searchmusic()
end)
thread:start()
end
}
jzz = {
TextView,
text = "加载中",
visibility = "gone",
id = luajava.newId("jzz"),
layout_marginLeft = "10dp",
textSize = "20sp",
textColor="#000000",
}
jiaz = {
TextView,
text = "正在加载歌曲资源",
visibility = "gone",
id = luajava.newId("加载"),
textSize = "20sp",
gravity = "center",
textColor="#000000",
}
wyylog = luajava.loadlayout({
LinearLayout,
orientation="vertical",
layout_width = "match_parent",
{
ScrollView,
layout_hight = "220dp",
gravity="center_horizontal",
layout_width = "match_parent",
{
LinearLayout,
layout_width = "match_parent",
{LinearLayout,
padding="4dp",
gravity="center",
orientation="vertical",
id=luajava.newId("固定音乐"),
},
id = luajava.newId("搜索列表"),
layout_hight = "300dp",
orientation = "vertical",
layout_width = "match_parent",
gravity="center_horizontal",
{
LinearLayout,
orientation = "horizontal",
layout_width = "match_parent",
padding={"10dp","0dp","10dp","0dp"},
{
EditText,
hint = "搜索歌曲名称",
textColor="0xFF1185FC",
id = luajava.newId("搜索"),
background = getbg(),
focusableInTouch = "true",
focusable = "true",
selectAllOnFocus = "true",
singleLine = "true",
layout_weight=1,
gravity="center",
layout_width = "match_parent"
},
stxt,
jzz
},
jiaz
}
}
})
luajava.getIdView("加载"):setHintTextColor(0xff000000)
左上角人物="https://pan.jl8.top/view.php/cdad514dc2dc70ec912cb7c9121df543.png"
侧边背景=getVerticalBG({0xffffffff,0xffffffff},0)
菜单背景=''
闪光标题='中野三玖美化'
悬浮窗图标 = "https://pan.jl8.top/view.php/5e036f2451d7c2bd6bb1d8fc173d7231.jpg"
function huiz()---绘制必须放在这里面
end
创建页面('封',
{
linmo.switch(
"功能",
function()
end,
function()
end),
linmo.switch(
"功能",
function()
end,
function()
end),
linmo.switch(
"功能",
function()
end,
function()
end),
})
第一页 = {--创建分页,结尾调用
['分页名字']="首页",
[1]={--第一分区
['分区名字']="公告",
['功能配置']={
linmo.text("tt全陆" , "0xFF1185FC" , "28sp" ) ,
linmo.line(),
linmo.button("选择进程",
function()
gg.setProcessX()
end),
linmo.switch(
"防封菜单",
function()
打开页面('防封')
end,
function()
关闭页面('防封')
end),
}},
[2]={--第二分区
['分区名字']="无",
['功能配置']={
linmo.box({
"未更新",
linmo.check({
{
"例子",
function()
end
}, {
"例子",
function()
end,
function()
end
}, {
"测试1",
function()
end,
function()
end
},
}),
linmo.switch(
"开关事例",
function()
end,
function()
end
),
linmo.switch(
"开关事例",
function()
end,
function()
end
),
linmo.switch(
"开关事例",
function()
end,
function()
end
),
linmo.switch(
"开关事例",
function()
end,
function()
end
),
}),
}},
[3]={--第三分区
['分区名字']="防封区",
['功能配置']={
linmo.text("" , "0xFF1185FC" , "20sp" ) ,
linmo.line(),
linmo.radio({
{
"第一套LOGO",
function()
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
local t = {"libUE4.so:bss", "Cb"}
local tt = {0xB4BD44}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = -698416192, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0xB4BD80}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = -698416192, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0xB4BDAC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = -698416192, freeze = true}})
gg.toast("开启成功")
end,
function()
end,"[logo图标开]"},{
"半杀67",
function()
if gg.getRangesList("libUE4.so")[1] then
local base = gg.getRangesList("libUE4.so")[1].start
local items = {
{address = base + 0x1A0, flags = 4, value = -1, freeze = true},
{address = base + 0x1A4, flags = 4, value = -1, freeze = true},
{address = base + 0x1A8, flags = 4, value = -1, freeze = true},
{address = base + 0x1AC, flags = 4, value = -1, freeze = true},
{address = base + 0x1B0, flags = 4, value = -1, freeze = true},
{address = base + 0x1B4, flags = 4, value = -1, freeze = true},
{address = base + 0x1B8, flags = 4, value = -1, freeze = true},
{address = base + 0x1BC, flags = 4, value = -1, freeze = true},
{address = base + 0x1C0, flags = 4, value = -1, freeze = true},
{address = base + 0x1C4, flags = 4, value = -1, freeze = true},
}
gg.addListItems(items)
gg.toast("开启成功")
end
end,
function()
end,"[大厅界面开启,可连打]"
},{
"",
function()
end,
function()
end,"[无]"
},{
"无",
function()
end,
function()
end,"[退出时必开]"
},
})
}},
[4]={--第四分区
['分区名字']="",
['功能配置']={
linmo.seek("拉条演示","ltxx",1,20,1),--“ltxx”为此拉条变量名字,使用时每个拉条不可重复
linmo.button(
"调用拉条",
function()
gg.alert(ltxx)
end),
}},
[5]={--第五分区
['分区名字']="无",
['功能配置']={
linmo.check({
{
"例子",
function()
end
}, {
"例子",
function()
end,
function()
end
}, {
"测试1",
function()
end,
function()
end
},
}),
}},
[6]={--第六分区
['分区名字']="无",
['功能配置']={
},}
}
第二页 = {
['分页名字']="音乐",
[1]={--第一分区
['分区名字']="搜索音乐",
['功能配置']={
linmo.button("暂停",
function()
toMusic("已暂停")
end),
wyylog,
},},
[2]={--第二分区
['分区名字']="推荐音乐",
['功能配置']={
},}
}
第三页={
['分页名字']="反馈",
[1]={
['分区名字']="反馈",
['功能配置']={
},}
}
第四页 = {
['分页名字']="设置",
[1]={--第一分区
['分区名字']="UI设置",
['功能配置']={
linmo.switch("音量键隐藏UI",
function()
音量键=true
end,
function()
音量键=false
end),
linmo.switch("摇一摇隐藏UI",
function()
摇一摇=true
end,
function()
摇一摇=false
end),
linmo.button("加入总群",
function()
gg.QQgroup("")
end),
linmo.button(
"退出",
function()
tuichu=1
end),
},}
}
linmo.menu({
第一页,--调用上边的分页配置
第二页,
第三页,
第四页,
})