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閱讀 6,550評論 0 17
  • ¥開啟¥ 【標題欄(ActionBar)】 〖2017-08-06 00:50:39〗 《標題欄(ActionBa...
    小菜c閱讀 1,282評論 0 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • ¥開啟¥ 【基礎-循環之while循環】 〖2017-08-15 23:22:33〗 《當天條件為真時(true)...
    小菜c閱讀 984評論 0 1
  • 瓶頸,平臺期 我寫的,所分享的東西都是我看到,聽到,以及胡思亂想想到的東西;我只是把觸動我的內容轉述出來。我所說的...
    haominzeng閱讀 366評論 0 0