--获取手机内置剩余存储空间
function GetSurplusSpace()
fs =StatFs(Environment.getDataDirectory().getPath())return Formatter.formatFileSize(activity,(fs.getAvailableBytes()))
end
--获取手机内置存储总空间
function GetTotalSpace()
path = Environment.getExternalStorageDirectory()
stat =StatFs(path.getPath())
blockSize = stat.getBlockSize()
totalBlocks = stat.getBlockCount()return Formatter.formatFileSize(activity, blockSize * totalBlocks)
end
获取视频第一帧
function GetVideoFrame(path)import"android.media.MediaMetadataRetriever"
media =MediaMetadataRetriever()
media.setDataSource(tostring(path))return media.getFrameAtTime()
end
选择文件模块
import"android.widget.ArrayAdapter"import"android.widget.LinearLayout"import"android.widget.TextView"import"java.io.File"import"android.widget.ListView"import"android.app.AlertDialog"
function ChoiceFile(StartPath,callback)--创建ListView作为文件列表
lv=ListView(activity).setFastScrollEnabled(true)--创建路径标签
cp=TextView(activity)
lay=LinearLayout(activity).setOrientation(1).addView(cp).addView(lv)
ChoiceFile_dialog=AlertDialog.Builder(activity)--创建对话框
.setTitle("选择文件").setView(lay).show()
adp=ArrayAdapter(activity,android.R.layout.simple_list_item_1)
lv.setAdapter(adp)
function SetItem(path)
path=tostring(path)
adp.clear()--清空适配器
cp.Text=tostring(path)--设置当前路径
if path~="/" then--不是根目录则加上../
adp.add("../")
end
ls=File(path).listFiles()if ls~=nil then
ls=luajava.astable(File(path).listFiles())--全局文件列表变量
table.sort(ls,function(a,b)return(a.isDirectory()~=b.isDirectory() and a.isDirectory()) or ((a.isDirectory()==b.isDirectory()) and a.Name<b.Name)
end)else
ls={}
end
for index,c in ipairs(ls)doif c.isDirectory() then--如果是文件夹则
adp.add(c.Name.."/")else--如果是文件则
adp.add(c.Name)
end
end
end
lv.onItemClick=function(l,v,p,s)--列表点击事件
项目=tostring(v.Text)iftostring(cp.Text)=="/" then
路径=ls[p+1]else
路径=ls[p]
end
if 项目=="../" then
SetItem(File(cp.Text).getParentFile())
elseif 路径.isDirectory() then
SetItem(路径)
elseif 路径.isFile() then
callback(tostring(路径))
ChoiceFile_dialog.hide()
end
end
SetItem(StartPath)
end
--ChoiceFile(StartPath,callback)--第一个参数为初始化路径,第二个为回调函数
--原创
选择路径模块
require "import"import"android.widget.ArrayAdapter"import"android.widget.LinearLayout"import"android.widget.TextView"import"java.io.File"import"android.widget.ListView"import"android.app.AlertDialog"
function ChoicePath(StartPath,callback)--创建ListView作为文件列表
lv=ListView(activity).setFastScrollEnabled(true)--创建路径标签
cp=TextView(activity)
lay=LinearLayout(activity).setOrientation(1).addView(cp).addView(lv)
ChoiceFile_dialog=AlertDialog.Builder(activity)--创建对话框
.setTitle("选择路径").setPositiveButton("OK",{
onClick=function()callback(tostring(cp.Text))
end}).setNegativeButton("Canel",nil).setView(lay).show()
adp=ArrayAdapter(activity,android.R.layout.simple_list_item_1)
lv.setAdapter(adp)
function SetItem(path)
path=tostring(path)
adp.clear()--清空适配器
cp.Text=tostring(path)--设置当前路径
if path~="/" then--不是根目录则加上../
adp.add("../")
end
ls=File(path).listFiles()if ls~=nil then
ls=luajava.astable(File(path).listFiles())--全局文件列表变量
table.sort(ls,function(a,b)return(a.isDirectory()~=b.isDirectory() and a.isDirectory()) or ((a.isDirectory()==b.isDirectory()) and a.Name<b.Name)
end)else
ls={}
end
for index,c in ipairs(ls)doif c.isDirectory() then--如果是文件夹则
adp.add(c.Name.."/")
end
end
end
lv.onItemClick=function(l,v,p,s)--列表点击事件
项目=tostring(v.Text)iftostring(cp.Text)=="/" then
路径=ls[p+1]else
路径=ls[p]
end
if 项目=="../" then
SetItem(File(cp.Text).getParentFile())
elseif 路径.isDirectory() then
SetItem(路径)
elseif 路径.isFile() then
callback(tostring(路径))
ChoiceFile_dialog.hide()
end
end
SetItem(StartPath)
end
import"android.os.*"ChoicePath(Environment.getExternalStorageDirectory().toString(),function(path)print(path)
end)--第一个参数为初始化路径,第二个为回调函数
--原创
获取视图中的文本
function GetAllText(view)
textTable={}
function GetText(Parent)
local number=Parent.getChildCount()for i=0,number do
local view=Parent.getChildAt(i)ifpcall(function()view.addView(TextView(activity))end) then
GetText(view)
elseif pcall(function()view.getText()end) then
table.insert(textTable,tostring(view.Text))
end
end
end
GetText(view)return textTable
end
print(table.unpack(GetAllText(Parent)))
控件圆角
function CircleButton(view,InsideColor,radiu)import"android.graphics.drawable.GradientDrawable"
drawable =GradientDrawable()
drawable.setShape(GradientDrawable.RECTANGLE)
drawable.setColor(InsideColor)
drawable.setCornerRadii({radiu,radiu,radiu,radiu,radiu,radiu,radiu,radiu});
view.setBackgroundDrawable(drawable)
end
角度=50
控件id=ed
控件颜色=0xFF09639CCircleButton(控件id,控件颜色,角度)