lua功能实现

¥开启¥

【加群QQ聊天源码】

〖2017-08-25 15:24:36〗

《import "android.net.Uri"€import "android.content.Intent"€--加群€url="mqqapi://card/show_pslcard?src_type=internal&version=1&uin=383792635&card_type=group&source=qrcode"€activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))€€--QQ聊天€url="mqqwpa://im/chat?chat_type=wpa&uin=2113075983"€activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))€€此教程由iCode提供!》

『胡稻』

〔Lua功能实现〕

【自定义消息,按钮,标题的颜色】

〖2017-08-25 15:27:08〗

《dialog=AlertDialog.Builder(this)€.setTitle("标题")€.setMessage("消息")€.setPositiveButton("积极",{onClick=function(v) print"点击了积极按钮"end})€.setNeutralButton("中立",nil)€.setNegativeButton("否认",nil)€.show()€dialog.create()€€€--更改消息颜色€message=dialog.findViewById(android.R.id.message)€message.setTextColor(0xff1DA6DD)€€--更改Button颜色€import "android.graphics.Color"€dialog.getButton(dialog.BUTTON_POSITIVE).setTextColor(0xff1DA6DD)€dialog.getButton(dialog.BUTTON_NEGATIVE).setTextColor(0xff1DA6DD)€dialog.getButton(dialog.BUTTON_NEUTRAL).setTextColor(0xff1DA6DD)€€--更改Title颜色€import "android.text.SpannableString"€import "android.text.style.ForegroundColorSpan"€import "android.text.Spannable"€sp = SpannableString("标题")€sp.setSpan(ForegroundColorSpan(0xff1DA6DD),0,#sp,Spannable.SPAN_EXCLUSIVE_INCLUSIVE)€dialog.setTitle(sp)€€此教程由iCode提供!》

『胡稻』

〔Lua功能实现〕

【lua功能实现发送邮件】

〖2017-08-25 15:28:59〗

《Lua实现发送邮件就是下面€€import "android.content.Intent"€i = Intent(Intent.ACTION_SEND)€i.setType("message/rfc822") €i.putExtra(Intent.EXTRA_EMAIL, {"181748731@XX.com"})€i.putExtra(Intent.EXTRA_SUBJECT,"Feedback")€i.putExtra(Intent.EXTRA_TEXT,"Content")€activity.startActivity(Intent.createChooser(i, "Choice"))€€€就这么简单€€此教程由iCode提供!》

『胡稻』

〔Lua功能实现〕

【分享】

〖2017-08-18 18:25:36〗

《分享€€--分享文件€function Sharing(path)€import "android.webkit.MimeTypeMap"€import "android.content.Intent"€import "android.net.Uri"€import "java.io.File"€FileName=tostring(File(path).Name)€ExtensionName=FileName:match("%.(.+)")€Mime=MimeTypeMap.getSingleton().getMimeTypeFromExtension(ExtensionName)€intent = Intent();€intent.setAction(Intent.ACTION_SEND);€intent.setType(Mime);€file = File(path);€uri = Uri.fromFile(file);€intent.putExtra(Intent.EXTRA_STREAM,uri);€intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);€activity.startActivity(Intent.createChooser(intent, "分享到:"));€end€€--分享文字€text="分享的内容" €intent=Intent(Intent.ACTION_SEND); €intent.setType("text/plain"); €intent.putExtra(Intent.EXTRA_SUBJECT, "分享"); €intent.putExtra(Intent.EXTRA_TEXT, text);€intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); €activity.startActivity(Intent.createChooser(intent,"分享到:")); €》

『小菜』

〔Lua功能实现〕

【调用其他程序打开文件】

〖2017-08-18 18:28:36〗

《调用其它程序打开文件€€function OpenFile(path)€import "android.webkit.MimeTypeMap"€import "android.content.Intent"€import "android.net.Uri"€import "java.io.File"€FileName=tostring(File(path).Name)€ExtensionName=FileName:match("%.(.+)")€Mime=MimeTypeMap.getSingleton().getMimeTypeFromExtension(ExtensionName)€if Mime then intent = Intent(); €intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); €intent.setAction(Intent.ACTION_VIEW);€intent.setDataAndType(Uri.fromFile(File(path)), Mime); €activity.startActivity(intent);€else€Toastc("找不到可以用来打开此文件的程序")€end€end》

『小菜』

〔Lua功能实现〕

【图片圆角】

〖2017-08-18 18:30:41〗

《图片圆角€€function GetRoundedCornerBitmap(bitmap,roundPx) €import "android.graphics.PorterDuffXfermode"€import "android.graphics.Paint"€import "android.graphics.RectF"€import "android.graphics.Bitmap"€import "android.graphics.PorterDuff$Mode"€import "android.graphics.Rect"€import "android.graphics.Canvas"€import "android.util.Config"€width = bitmap.getWidth()€output = Bitmap.createBitmap(width, width,Bitmap.Config.ARGB_8888)€canvas = Canvas(output); €color = 0xff424242; €paint = Paint()€rect = Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); €rectF = RectF(rect); €paint.setAntiAlias(true);€canvas.drawARGB(0, 0, 0, 0); €paint.setColor(color); €canvas.drawRoundRect(rectF, roundPx, roundPx, paint); €paint.setXfermode(PorterDuffXfermode(Mode.SRC_IN)); €canvas.drawBitmap(bitmap, rect, rect, paint); €return output; €end€import "android.graphics.drawable.BitmapDrawable"€圆角弧度=50€bitmap=loadbitmap(picturePath)€RoundPic=GetRoundedCornerBitmap(bitmap)》

『小菜』

〔Lua功能实现〕

【发送短信】

〖2017-08-18 18:33:36〗

《发送短信€€--后台发送短信€require "import"€import "android.telephony.*"€SmsManager.getDefault().sendTextMessage(tostring(号码), nil, tostring(内容), nil, nil)€€--调用系统发送短信€import "android.content.Intent" €import "android.net.Uri" €uri = Uri.parse("smsto:"..号码)€intent = Intent(Intent.ACTION_SENDTO, uri)€intent.putExtra("sms_body",内容) €intent.setAction("android.intent.action.VIEW")€activity.startActivity(intent)》

『小菜』

〔Lua功能实现〕

【判断数组中是否存在某个值】

〖2017-08-18 18:35:23〗

《判断数组中是否存在某个值€€function Table_exists(tables,value)€for index,content in pairs(tables) do€if content:find(value) then€return true€end€end€end》

『小菜』

〔Lua功能实现〕

【各种事件】

〖2017-08-18 18:37:56〗

《各种事件€€function main(...)€  --...是newActivity传递过来的参数。€  print("入口函数",...)€end€function onCreate()€  print("窗口创建")€end€function onStart()€  print("活动开始")€end€function onResume()€  print("返回程序")€end€function onPause()€  print("活动暂停")€end€function onStop()€  print("活动停止")€end€function onDestroy()€  print("程序已退出")€end€function onResult(name,...)€  --name:返回的活动名称€  --...:返回的参数€  print("返回活动",name,...)€end€function onCreateOptionsMenu(menu)€  --menu:选项菜单。€  menu.add("菜单")€end€function onOptionsItemSelected(item)€  --item:选中的菜单项€  print(item.Title)€end€function onConfigurationChanged(config)€  --config:配置信息€  print("屏幕方向关闭")€end€function onKeyDown(keycode,event)€  --keycode:键值€  --event:事件€  print("按键按下",keycode)€end€function onKeyUp(keycode,event)€  --keycode:键值€  --event:事件€  print("按键抬起",keycode)€end€function onKeyLongPress(keycode,event)€  --keycode:键值€  --event:事件€  print("按键长按",keycode)€end€function onTouchEvent(event)€  --event:事件€  print("触摸事件",event)€end€function onKeyDown(c,e)€  if c==4 then€--返回键事件€end€end€€id.onClick=function()€--控件被单击€end€id.onLongClick=function()€--控件被长按€end€€id.onItemClick=function(p,v,i,s)€--列表项目被单击€项目=v.Text€return true€end€id.onItemLongClick=function(p,v,i,s)€--列表项目被长按€项目=v.Text€return true€end€€id.onItemLongClick=function(p,v,i,s)€--列表项目被长按€项目=v.Text€return true€end€--Spinner的项目单击事件€id.onItemSelected=function(l,v,p,i) €项目=v.Text€end€--ExpandableListView的父项目与子项目单击事件€id.onGroupClick=function(l,v,p,s)€  print(v.Text..":GroupClick")€end€id.onChildClick=function(l,v,g,c)€  print(v.Text..":ChildClick")€end》

『小菜』

〔Lua功能实现〕

【Shell执行】

〖2017-08-17 09:13:12〗

《function exec(cmd)€local p=io.popen(string.format('%s',cmd))€local s=p:read("*a")€p:close()€return s€end€€print(exec("echo  ...."))€€部分常用命令:€--删除文件或文件夹€rm -r /路径€€--复制文件或文件夹€cp -r inpath outpath€€--移动文件或文件夹€mv -r inpath outpath€€--挂载系统目录€mount -o remount,rw path€€--修改系统文件权限€chmod 755 /system/build.prop€€--重启€reboot €€--关机€reboot -p€--重启至recovery€reboot recovery》

『小菜』

〔Lua功能实现〕

【各种事件】

〖2017-08-17 09:15:26〗

《各种事件€function main(...)€--...是newActivity传递过来的参数。€print("入口函数",...)€end€€function onCreate()€print("窗口创建")€end€€function onStart()€ print("活动开始")€end€€function onResume()€€ print("返回程序")€end€€function onPause()€print("活动暂停")€end€€function onStop()€print("活动停止")€end€€function onDestroy()€print("程序已退出")€end€€function onResult(name,...)€--name:返回的活动名称 -€-...:返回的数€print("返回活动",name,...)€end€€function onCreateOptionsMenu(menu)€--menu:选项菜单。€menu.add("菜单")€end€€function onOptionsItemSelected(item)€ --item:选中的菜单项€print(item.Title)€end€€function onConfigurationChanged(config)€ --config:配置信息€print("屏幕方向关闭")€end€€function onKeyDown(keycode,event)€--keycode:键值€--event:事件€print("按键按下",keycode)€end€€function onKeyUp(keycode,event)€--keycode:键值€--event:事件€print("按键抬起",keycode)€end€€function onKeyLongPress(keycode,event)€ --keycode:键值€--event:事件€print("按键长按",keycode)€end€function onTouchEvent(event)€--event:事件€print("触摸事件",event)€end€€function onKeyDown(c,e)€if c==4 then€--返回键事件€end€end€€id.onClick=function()€--控件被单击€€end€€id.onLongClick=function()€--控件被长按€end€€€id.onItemClick=function(p,v,i,s)€--列表项目被单击€项目=v.Text€return true€end€€id.onItemLongClick=function(p,v,i,s)€--列表项目被长按€项目=v.Text€return true€end€€€id.onItemLongClick=function(p,v,i,s)€--列表项目被长按€项目=v.Text€return true€end€€--Spinner的项目单击事件€id.onItemSelected=function(l,v,p,i) €项目=v.Text€end€€--ExpandableListView的父项目与子项目单击事件€id.onGroupClick=function(l,v,p,s)€print(v.Text..":GroupClick")€end€€id.onChildClick=function(l,v,g,c)€print(v.Text..":ChildClick")€end€》

『小菜』

〔Lua功能实现〕

【剪切板操作】

〖2017-08-17 09:22:36〗

《剪切板操作€import "android.content.Context" €--导入类€€a=activity.getSystemService(Context.CLIPBOARD_SERVICE).getText() €--获取剪贴板 €€activity.getSystemService(Context.CLIPBOARD_SERVICE).setText(edit.Text) €--写入剪贴板€》

『小菜』

〔Lua功能实现〕

【一键加群与QQ聊天】

〖2017-08-17 09:23:56〗

《一键加群与QQ聊天€import "android.net.Uri"€import "android.content.Intent"€--加群€url="mqqapi://card/show_pslcard?src_type=internal&version=1&uin=383792635&card_type=group&source=qrcode"€activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))€€--QQ聊天€url="mqqwpa://im/chat?chat_type=wpa&uin=2113075983"€activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))€》

『小菜』

〔Lua功能实现〕

【获取视角中的所有文本】

〖2017-08-17 09:25:06〗

《获取视图中的所有文本€function GetAllText(view)€textTable={}€function GetText(Parent)€local number=Parent.getChildCount()€for i=0,number do€local view=Parent.getChildAt(i)€if pcall(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)))》

『小菜』

〔Lua功能实现〕

【匹配汉字】

〖2017-08-17 09:27:46〗

《匹配汉字€function filter_spec_chars(s)€local ss = {}€for k = 1, #s do€local c = string.byte(s,k)€if not c then break end€if (c>=48 and c<=57) or (c>= 65 and c<=90) or (c>=97 and c<=122) then€if not string.char(c):find("%w") then€table.insert(ss, string.char(c))€end€elseif c>=228 and c<=233 then€local c1 = string.byte(s,k+1)€local c2 = string.byte(s,k+2)€if c1 and c2 then€local a1,a2,a3,a4 = 128,191,128,191€if c == 228 then a1 = 184€elseif c == 233 then a2,a4 = 190,c1 ~= 190 and 191 or 165€end€if c1>=a1 and c1<=a2 and c2>=a3 and c2<=a4 then€k = k + 2€table.insert(ss, string.char(c,c1,c2))€end€end€end€end€return table.concat(ss)€end€print(filter_spec_chars("A1B2汉C3D4字E5F6,,,"))€-来源网络,加了个if过滤掉英文与数字,使其只捕获中文€》

『小菜』

〔Lua功能实现〕

【播放音乐与视频】

〖2017-08-17 09:30:15〗

《播放音乐与视频€import "android.media.MediaPlayer"€mediaPlayer =  MediaPlayer()€€--初始化参数 €mediaPlayer.reset()€--设置播放资源 €mediaPlayer.setDataSource("storage/sdcard0/a.mp3")€€--开始缓冲资源 €mediaPlayer.prepare()€--是否循环播放该资源 €mediaPlayer.setLooping(true)€€--缓冲完成的监听 €mediaPlayer.setOnPreparedListener(MediaPlayer.OnPreparedListener() { €onPrepared=function(mediaPlayer€mediaPlayer.start()€end}); €--是否在播放 €mediaPlayer.isPlaying()€--暂停播放€mediaPlayer.pause()€--从30位置开始播放 €mediaPlayer.seekTo(30)€€--停止播放 €mediaPlayer.stop()€€--播放视频€--视频的播放与音乐播放过程一样: €--先创建一个媒体对象 €import "android.media.MediaPlayer"€mediaPlayer =  MediaPlayer()€--初始化参数 €mediaPlayer.reset()€€--设置播放资源 €mediaPlayer.setDataSource("storage/sdcard0/a.mp4")€€--拿到显示的SurfaceView €sh = surfaceView.getHolder()€sh.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)€--设置显示SurfaceView

mediaPlayer.setDisplay(sh)€€--设置音频流格式 €mediaPlayer.setAudioStreamType(AudioManager.Stream_Music)€€--开始缓冲资源 €mediaPlayer.prepare()€--缓冲完成的监听 €mediaPlayer.setOnPreparedListener(MediaPlayer.OnPreparedListener{ €onPrepared=function(mediaPlayer)€--开始播放 €mediaPlayer.start()€end€}); €--释放播放器 €mediaPlayer.release()€€--非原创€》

『小菜』

〔Lua功能实现〕

【获取系统SDK,Android版本及设备型号】

〖2017-08-17 09:35:25〗

《device_model = Build.MODEL --设备型号€€version_sdk = Build.VERSION.SDK --设备SDK版本 €€version_release = Build.VERSION.RELEASE --设备的系统版本》

『小菜』

〔Lua功能实现〕

【控件颜色修改】

〖2017-08-17 09:36:14〗

《控件颜色修改€import "android.graphics.PorterDuffColorFilter"€import "android.graphics.PorterDuff"€€--修改按钮颜色€button.getBackground().setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP))€€--修改编辑框颜色€edittext.getBackground().setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP));€--修改Switch颜色€switch.ThumbDrawable.setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP));€switch.TrackDrawable.setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP))€€--修改ProgressBar颜色€progressbar.IndeterminateDrawable.setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP))€€--修改SeekBar滑条颜色€seekbar.ProgressDrawable.setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP))€--修改SeekBar滑块颜色€seekbar.Thumb.setColorFilter(PorterDuffColorFilter(0xFFFB7299,PorterDuff.Mode.SRC_ATOP))€》

『小菜』

〔Lua功能实现〕

【修改对话框按钮颜色】

〖2017-08-17 09:38:38〗

《修改对话框按钮颜色

function DialogButtonFilter(dialog,button,WidgetColor)€if Build.VERSION.SDK_INT >= 21 then€import "android.graphics.PorterDuffColorFilter"€import "android.graphics.PorterDuff"€if button==1 then€dialog.getButton(dialog.BUTTON_POSITIVE).setTextColor(WidgetColor)€elseif button==2 then€dialog.getButton(dialog.BUTTON_NEGATIVE).setTextColor(WidgetColor)€elseif button==3 then€dialog.getButton(dialog.BUTTON_NEUTRAL).setTextColor(WidgetColor)€end€end€end€--第一个参数为对话框的变量€--第二个参数为1时,则修改POSITIVE按钮颜色,为二则修改NEGATIVE按钮颜色,为三则修改NEUTRAL按钮颜色€--第三个参数为要修改成的颜色€》

『小菜』

〔Lua功能实现〕

【查询本地所有视频】

〖2017-08-17 09:40:43〗

《查询本地所有视频€function QueryAllVideo()€import "android.provider.MediaStore"€cursor = activity.ContentResolver€mImageUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;€mCursor = cursor.query(mImageUri,nil,nil,nil,MediaStore.Video.Media.DATE_TAKEN)€mCursor.moveToLast()€VideoTable={}€while mCursor.moveToPrevious() do€path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Video.Media.DATA))€table.insert(VideoTable,tostring(path))€end€mCursor.close()€return VideoTable€end€--返回一个表》

『小菜』

〔Lua功能实现〕

【查询本地所有图片】

〖2017-08-17 09:43:16〗

《查询本地所有图片€function QueryAllImage()€import "android.provider.MediaStore"€cursor = activity.ContentResolver€mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;€mCursor = cursor.query(mImageUri,nil,nil,nil,MediaStore.Images.Media.DATE_TAKEN)€mCursor.moveToLast()€imageTable={}€while mCursor.moveToPrevious() do€path = mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Media.DATA))€table.insert(imageTable,tostring(path))€end€mCursor.close()€return image€Tableend€--返回一个表€》

『小菜』

〔Lua功能实现〕

【递归查找文件】

〖2017-08-17 09:45:46〗

《递归查找文件€function outPath(ret) €for i,p in pairs(luajava.astable(ret))do€print(p)€end€end€function find(catalog,name)€local n=0€ local t=os.clock()€local ret={}€require "import"€ import "java.io.File"€ import "java.lang.String"€function FindFile(catalog,name)€local name=tostring(name)€ local ls=catalog.listFiles() or File{}€for 次数=0,#ls-1 do€ --local 目录=tostring(ls[次数])€local f=ls[次数]€if f.isDirectory() then--如果是文件夹则继续匹配€FindFile(f,name)€else--如果是文件则€n=n+1€if n%1000==0 then€print(n,os.clock()-t)€end€ local nm=f.Name€ if string.find(nm,name) then€--thread(insert,目录)€table.insert(ret,tostring(f))€end€ end€luajava.clear(f)€end€end€FindFile(catalog,name)€call("outPath",ret)€end€import "java.io.File"€€catalog=File("/sdcard/AndroLua")€name=".j?pn?g"€thread(find,catalog,name)€》

『小菜』

〔Lua功能实现〕

【获取手机内置存储路径】

〖2017-08-17 09:50:13〗

《获取手机内置存储路径€Environment.getExternalStorageDirectory().toString()》

『小菜』

〔Lua功能实现〕

【获取已安装程序的包名、版本号、最后更新时间、图标、应用名称】

〖2017-08-17 09:51:34〗

《获取已安装程序的包名、版本号、最后更新时间、图标、应用名称€function GetAppInfo(包名)€import "android.content.pm.PackageManager"€ local pm = activity.getPackageManager();€local 图标 = pm.getApplicationInfo(tostring(包名),0)€local 图标 = 图标.loadIcon(pm);€local pkg = activity.getPackageManager().getPackageInfo(包名, 0); € local 应用名称 = pkg.applicationInfo.loadLabel(activity.getPackageManager())€local 版本号 = activity.getPackageManager().getPackageInfo(包名, 0).versionName€local 最后更新时间 = activity.getPackageManager().getPackageInfo(包名, 0).lastUpdateTime€local cal = Calendar.getInstance();€ cal.setTimeInMillis(最后更新时间); € local 最后更新时间 = cal.getTime().toLocaleString()€return 包名,版本号,最后更新时间,图标,应用名称€end€》

『小菜』

〔Lua功能实现〕

【获取指定安装包的包名,图标,应用名】

〖2017-08-17 09:53:45〗

《获取指定安装包的包名,图标,应用名€import "android.content.pm.PackageManager"€import "android.content.pm.ApplicationInfo"€function GetApkInfo(archiveFilePath)€pm = activity.getPackageManager()€info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES); €if info ~= nil then€appInfo = info.applicationInfo;€appName = tostring(pm.getApplicationLabel(appInfo))€packageName = appInfo.packageName; --安装包名称€ version=info.versionName; --版本信息€icon = pm.getApplicationIcon(appInfo);--图标€end€return packageName,version,icon€end€》

『小菜』

〔Lua功能实现〕

【获取某程序是否安装】

〖2017-08-17 09:55:27〗

《获取某程序是否安装€if pcall(function() activity.getPackageManager().getPackageInfo("包名",0) end) then€print("安装了")€else€print("没安装")€end€》

『小菜』

〔Lua功能实现〕

【设置TextView字体风格】

〖2017-08-17 09:57:06〗

《设置TextView字体风格€import "android.graphics.Paint"€--设置中划线€id.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG)€--设置下划线€id.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG )€--设置加粗€id.getPaint().setFakeBoldText(true)€--设置斜体€id.getPaint().setTextSkewX(0.2)€€--设置TypeFace€import "android.graphics.Typeface"€id.getPaint().setTypeface()€--参数列表€Typeface.DEFAULT 默认字体€Typeface.DEFAULT_BOLD 加粗字体€Typeface.MONOSPACE monospace字体€Typeface.SANS_SERIF sans字体€Typeface.SERIF serif字体》

『小菜』

〔Lua功能实现〕

【缩放图片】

〖2017-08-17 09:59:03〗

《缩放图片€function rotateToFit(bm,degrees)€import "android.graphics.Matrix"€import "android.graphics.Bitmap"€width = bm.getWidth()€height = bm.getHeight()€matrix =  Matrix()€matrix.postRotate(degrees)€bmResult = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true)€returnbmResult€end€bm=loadbitmap(图片路径)€缩放级别=2€rotateToFit(bm,degrees)€--非原创》

『小菜』

〔Lua功能实现〕

【获取运营商名称】

〖2017-08-17 10:01:25〗

《获取运营商名称€import "android.content.Context" €运营商名称 = this.getSystemService(Context.TELEPHONY_SERVICE).getNetworkOperatorName()€print(运营商名称)€--添加权限  READ_PHONE_STATE》

『小菜』

〔Lua功能实现〕

【Drawable着色】

〖2017-08-17 10:02:04〗

《Drawable着色€function ToColor(path,color)€ local  aa=BitmapDrawable(loadbitmap(tostring(path)))€aa.setColorFilter(PorterDuffColorFilter(color,PorterDuff.Mode.SRC_ATOP))€return aa€end》

『小菜』

〔Lua功能实现〕

【保存图片到本地】

〖2017-08-17 10:03:15〗

《保存图片到本地€function€SavePicture(name,bm)

if  bm then€import "java.io.FileOutputStream"€import "java.io.File"€import "android.graphics.Bitmap"€name=tostring(name)€f = File(name)€out = FileOutputStream(f)€bm.compress(Bitmap.CompressFormat.PNG,90, out)€out.flush()€out.close()€return true

else€return false€end€end》

『小菜』

〔Lua功能实现〕

【调用应用商店搜索应用】

〖2017-08-17 10:05:20〗

《调用应用商店搜索应用€import "android.content.Intent"€import "android.net.Uri"€intent = Intent("android.intent.action.VIEW")€intent .setData(Uri.parse( "market://details?id="..activity.getPackageName()))€this.startActivity(intent)》

『小菜』

〔Lua功能实现〕

【控件背景渐变动画】

〖2017-08-10 20:36:10〗

《控件背景渐变动画€view=控件id€color1 = 0xffFF8080;€color2 = 0xff8080FF;€color3 = 0xff80ffff;€color4 = 0xff80ff80;€import "android.animation.ObjectAnimator"€import "android.animation.ArgbEvaluator"€import "android.animation.ValueAnimator"€import "android.graphics.Color"€colorAnim = ObjectAnimator.ofInt(view,"backgroundColor",{color1, color2, color3,color4})€colorAnim.setDuration(3000)€colorAnim.setEvaluator(ArgbEvaluator())€colorAnim.setRepeatCount(ValueAnimator.INFINITE)€colorAnim.setRepeatMode(ValueAnimator.REVERSE)€colorAnim.start()》

『小菜』

〔Lua功能实现〕

【精准获取屏幕尺寸】

〖2017-08-10 20:39:30〗

《精准获取屏幕尺寸€function  getScreenPhysicalSize(ctx) €  import "android.util.DisplayMetrics"€  dm = DisplayMetrics();€  ctx.getWindowManager().getDefaultDisplay().getMetrics(dm);€  diagonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2) + Math.pow(dm.heightPixels, 2));€  return diagonalPixels / (160 * dm.density);€end€print(getScreenPhysicalSize(activity))》

『小菜』

〔Lua功能实现〕

【自定义默认弹窗标题,消息,按钮的颜色】

〖2017-08-10 20:41:15〗

《dialog=AlertDialog.Builder(this)€.setTitle("标题")€.setMessage("消息")€.setPositiveButton("积极",{onClick=function(v) print"点击了积极按钮"end})€.setNeutralButton("中立",nil)€.setNegativeButton("否认",nil)€.show()€dialog.create()€€€--更改消息颜色€message=dialog.findViewById(android.R.id.message)€message.setTextColor(0xff1DA6DD)€€--更改Button颜色€import "android.graphics.Color"€dialog.getButton(dialog.BUTTON_POSITIVE).€setTextColor(0xff1DA6DD)€dialo.€getButton(dialog.BUTTON_NEGATIVE).€setTextColor(0xff1DA6DD)€dialog.getButton(dialog.BUTTON_NEUTRAL).setTextColor(0xff1DA6DD)€€--更改Title颜色€import "android.text.SpannbleString"€import "android.text.style.ForegroundColorSpan"€import "android.text.Spannable"€sp = SpannableString("标题")

sp.€setSpan(ForegroundColorSpan(0xff1DA6DD),0,#sp,Spannable€SPAN_EXCLUSIVE_INCLUSIVE)€ dialog.setTitle(sp)》

『小菜』

〔Lua功能实现〕

【获取手机存储空间】

〖2017-08-10 20:46:6〗

《获取手机存储空间€--获取手机内置剩余存储空间€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€》

『小菜』

〔Lua功能实现〕

【获取视频第一帧】

〖2017-08-10 20:47:50〗

《获取视频第一帧€function  GetVideoFrame(path)€  import "android.media.MediaMetadataRetriever"€ media = MediaMetadataRetriever()€ media.setDataSource(tostring(path))€  return media.getFrameAtTime()€end》

『小菜』

〔Lua功能实现〕

【选择文件模块】

〖2017-08-10 20:50:13〗

《选择文件模块€ 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》

『小菜』

〔Lua功能实现〕

【标题栏(ActionBar)】

〖2017-08-06 00:50:39〗

《标题栏(ActionBar)€--部分常用API€show:显示€hide:隐藏€Elevation:设置阴影€BgroundDrawable:设置背景€*HomeAsUpEnabled(boolean):设置是否显示返回图标€€--设置标题€activity.ActionBar.setTitle(’大标题’)€activity.ActionBar.setSubTitle(”小标题”)€€--设置ActionBar背景颜色€.import ”android.graphics.drawable€ColorDrawable€”activity.ActionBar.setBackgroundDrawable(ColorDrawable(Color))€€--自定义ActionBar标题颜色€import ”android.text.SpannableString”import ”android.text.style.ForegroundColorSpan”€import ”android.text.Spannable”€sp =€SpannableString(”标题”)€sp.setSpan(ForegroundColorSpan(0xff1DA6DD),0,#sp,Spannable.SPAN_EXCLUSIVE_INCLUSIVE)€activity.ActionBar.setTitle(sp)€€--自定义ActionBar布

*ShowCustomEnabled(true)€CustomView(loadlayout(layout))€--ActionBar返回按钮€activity.ActionBar€set*HomeAsUpEnabled(true)€--自定义返回按钮图标€activity.ActionBar€setHomeAsUpIndicator(drawable)€€€€--菜单€function on*OptionsMenu(menu)€ menu.add(”菜单1”)€ menu.add(”菜单2”)€ menu.add(”菜单3”)€end€function onOptionsItem*ed(item)€ print(”你选择了:”..item.Title)

end€--Tab导航使用€import ”android.app.ActionBar$TabListener”

actionBar=activity.ActionBar€actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);€tab = actionBar.newTab().setText(”Tab1”).setTabListener(TabListener({€ onTab*ed=function()€ print”Tab1”€ end}))€tab2=actionBar.newTab().setText(”Tab2”).setTabListener(TabListener({€onTab*ed=function()€ print”Tab2”€ end}))€actionBar.addTab(tab)€actionBar.addTab(tab2)€》

『小菜』

〔Lua功能实现〕

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 2,782评论 0 4
  • ¥开启¥ 【标题栏(ActionBar)】 〖2017-08-06 00:50:39〗 《标题栏(ActionBa...
    小菜c阅读 281评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 124,665评论 16 534
  • ¥开启¥ 【基础-循环之while循环】 〖2017-08-15 23:22:33〗 《当天条件为真时(true)...
    小菜c阅读 98评论 0 1
  • 瓶颈,平台期 我写的,所分享的东西都是我看到,听到,以及胡思乱想想到的东西;我只是把触动我的内容转述出来。我所说的...
    心生种种阅读 24评论 0 0