0.开源说明
- 本程序完全开源,可用于学习,但是不能用于商业.
遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
- 你可以提取里面的功能来使用,但是请勿二次打包.
1.使用说明
- 打包环境
- 此工程推荐使用Aluaj编译打包.
- 也可以把src的文件提出来当成AndroLu+/Onelua等工程使用(注意主题(style.xml)/以及部分src/java封装的代码将无效),在代码中以及备注.
- 也可以配合AndroLua+.jar等,在Android Studio打包,但是会有功能上的缺陷!
- 基本功能
简单理解就是本程序就是一个提供脚本功能的空壳
- 你可以通过脚本实现某些定制某些功能(xx毕业班的电子版同学录,可以存放各式各样的文件和信息)
- 当然默认是有一些小工具
- 下载脚本的方法我还没有想好
- 最基本的功能–定制软件
- 全部数据都存放在**alittlemc/**目录中
- 读取alittlemc/diy中的脚本,可以根据其中的文件,动态的修改(在启动时加载一次,如果开启了预加载将不会动态加载,推荐在确定代码稳定不再需要修改时开启)程序的界面和各种事件.
- 一个脚本的表现形式分为两种(后面会具体解释):
- 单个文件:alittlemc/diy/xxx.diy(单文件脚本后缀也可以是add)
- 推荐没有额外的媒体文件时使用,而且会优先于文件夹加载
- 文件夹:alittlemc/diy/xxx/main.diy
- 请把本脚本的全部额外输出的文件/需要调用的文件都放在在里面,方便备份和删除
- main.diy是固定的入口
- 单个文件:alittlemc/diy/xxx.diy(单文件脚本后缀也可以是add)
- 一个脚本的表现形式分为两种(后面会具体解释):
Github源代码链接:{com.alittlemc.gather}
Code_aliyuan源代码链接(未完成):{com.alittlemc.gather}
Code_aliyuan脚本链接:{alittlemc_by_diy}(持续更新)
Bmob_alittlemc:{这个由我维护}
1.1源代码文件的结构
- src-
- files/(其他文件,如图片/压缩包等)
- diy.zip(初始化自带的diy脚本)
- xxx.png(图标素材)
- java/(封装的java源代码)
- AddFuncstion.java(一些杂乱的方法)
- lua/(lua脚本)
- alert_dialog.lua(旧版dialog封装)
- alm.lua(功能函数)
- code_diy_split.lua(diy解释)
- fun.lua(最基本函数)
- 其他,用于测试
- openSource/(开源的文件夹)
- CustomDialog/
- LICENSE(开源说明)
- main.lua(CustomDialog主代码,已经魔改,请配合link.CD.lua使用)
- NumConvert.lua(任意进制转换,增强为任意进制转换)
- main.lua
- build.lua(布局,基于开源v7模拟修改)
- icon.png(程序图标)
- include.lua(import通用存放)
- init.lua(AndroLua+的工程清单文件)
- main.lua(主程序入口)
- main_ui.lua(列表等布局事件)
1.2外部文件数据的结构
所有的文件都在你的手机中的**..alittlemc/**目录中,如果需要完全卸载请同此也删除
- alittlemc-
- diy/(存放/执行脚本的目录,谨慎操作!)
- 文件(如xxx.diy,xxx.add就是脚本文件)
- 文件夹(比如xxx/main.diy,里面要有mian.diy文件夹,一般文件夹中还有其他资源文件和依赖)
- list/(存放临时的脚本数据,比如获取网上脚本的列表,保质期未一天)
- query编号.json(从bmob获取网上脚本的列表,一天刷新一次)
- 其他(一些脚本也会用上)
- data.json(用户设置的文件,比如xxx功能的开启或者关闭,允许修改,但是不保证修改后能否正常使用)
- func.json(和下面的是配套出现,如果你打开了**”预加载”,下一次启动会读取脚本到这个文件,这样以后启动就不需要再读取脚本,**但是新的脚本也不会生效)
- func.lua(配套)
- 应该没有其他了
1.3常用全局变量
- 布局类
- hsn(状态栏高,integer)
- mTheme(当前主题ID,源于gen/目录中的R.java参数,integer)
- theme_n,theme_l(夜间,白天主题色的字符串:eg-“#FF303030”,string)
- theme_n_int,theme_l_int(夜间,白天主题色的数字:eg-0xFF303030,integer)
- 等
- 数据类
- data(全部设置的数据数组,table)
- mulu(绝对目录的前缀,string:”../alittlemc/“)
- sdk(Android版本,integer)
- string(列表封装,table)
- diyname(存放含义布局diy脚本名称,table)
- diyname_all(存放所有的脚本明,table)
- diyabout(存放脚本概述,table)
- 等
- 常用函数
* integer jishu(string a,string c)-->统计a中c字符串出现的次数 |
2.第三方包解释说明
2.1.CustomDialog (CD)
FileName: CustomDialog.lua
Author: SmallDi
Version: 1.0.2
Date: 2019-07-24
Email: 1753520469@qq.com
Github: https://github.com/smalldi/CustomDialog
Description: 纯LuaJava代码编写的高度自定义对话框
- :build(integer theme)
- 建立Dialog(integer 主题)
dialog=CustomDialog:build(android.R.style.Theme_Material_Light_NoActionBar)
return __index
- 建立Dialog(integer 主题)
:setCancelable(boolean bool)
- 能否从外侧区域点击关闭(bool=true可以;false不可以;默认nil)
dialog:setCancelable(true)
return __index
- 能否从外侧区域点击关闭(bool=true可以;false不可以;默认nil)
:setTitle(string title)
- 添加标题控件及其内容(string支持Html)
dialog:setTitle("<font color='red'>Title</font>")
return __index
- 添加标题控件及其内容(string支持Html)
:setMessage(string message)
- 添加内容控件及其内容(string支持Html)
dialog:setMessage("<font color='red'>Message</font>")
return __index
- 添加内容控件及其内容(string支持Html)
:addView(table_layout view)
- 添加自定义的控件
dialog:addView(loadlayout{
TextView;
textSize="20sp";
text="标题";
paddingTop="16dp";
Typeface=FONT_BOLD;
paddingLeft="16dp";
paddingRight="16dp";
layout_width="fill";
})
return __index
- 添加自定义的控件
:setContentView(table_layout view)
- 设置主布局
- 与addView效果相同
:addButton(table_string[0-3] buttons,table_integer[0-3] color)
- 添加按钮控件以及设置颜射
:setOnClick(function(dialog,view) event)
- 设置按钮控件的点击事件
dialog:setOnClick(function(d,v)
switch(v.Text)
case "关闭"
...
end
end)
return __index
- 设置按钮控件的点击事件
:setOnLongClick(function(dialog,view) event)
- 设置按钮控件的长按事件
- 与setOnClick相同
:enterAnimation(Animation anima,number fromX, number toX, number fromY, number toY)
- 设置打开动画
- 当 anima 为 false/nil 时:默认使用TranslateAnimation(平移),并且继续使用fromX, toX, fromY, toY(其中若参数不全,用0补全)
- 当 anlma 为 补间动画类时,执行其动画,后面的参数将不生效
dialog:exitAnimation(nil,0, 1000, 0, 0)
--或者
dialog:exitAnimation(AlphaAnimation(0, 1))
--动画时长默认为
activity.getResources().getInteger(android.R.integer.config_mediumAnimTime)
return __index,anima 若第一个参数为动画类 即额外返回该动画修改后赋值,可以用于动画事件
- 设置打开动画
:exitAnimation(Animation anima,number fromX, number toX, number fromY, number toY)
- 设置关闭动画
- 与exitAnimation相同
:setGravity(Gravity gravity)
- 设置位置,默认Gravity.BOTTOM
dialog:setGravity(Gravity.BOTTOM)
--常用
Gravity.TOP
Gravity.CENTER
Gravity.BOTTOM
return __index
- 设置位置,默认Gravity.BOTTOM
:setRadius(integer color,number leftTop,number rightTop,number rightBottom,number leftBottom)
- 设置背景颜色/圆角大小(分别是左上,右上,左下,右下)
dialog:setRadius(0xFF00796B)
return __index
- 设置背景颜色/圆角大小(分别是左上,右上,左下,右下)
.show()
- 显示Dialog,无参数,使用
.
,使用后新追加的(即上面函数的修改)不生效dialog.show()
return __index
- 显示Dialog,无参数,使用
.hide()
- 立即关闭Dialog,无参数,使用
.
dialog.hide()
return __index
- 立即关闭Dialog,无参数,使用
说明
- 在本项目中请使用该方法调用
CenterDialog=require "openSource.CustomDialog.main"
- 以上方法都可以叠起来用
dialog=CustomDialog.build()
:setTitle(t.title or "标题")
:setRadius(Color.WHITE,10,10)
.show()