¥開啟¥
【加群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功能實現〕