原创 Kotlin 使用Handler
方式 A 網上普遍用法 val handler : Handler = object : Handler(){ override fun handleMessage(msg: Message?) {
原创 代理模式是什麼?
代理模式是一種設計模式,簡單說即是在不改變源碼的情況下,實現對目標對象的功能擴展。 比如有個歌手對象叫Singer,這個對象有一個唱歌方法叫sing()。 public class Singer{ public void
原创 shrinkResources 的使用
一.背景 對於縮小APk大小,除了開啓混淆 minifyEnabled true 還有使用 shrinkResources true 說下這兩者的區別 minifyEnabled 這個是用來開啓刪除無用代碼,比如沒有引用到的代碼 sh
原创 Android打包問題——Please correct the above warnings first.
Android 打包release的時候,一直沒打包成功,報了這個錯。 應該混淆的時候,沒有忽略警告。具體應該是IO異常。 在proguard-rules.pro 裏面加一句話 -ignorewarnings 然後打包就好了。 美滋滋
原创 Android去掉SrollView、GrdiView、RecycleView、ViewPager等可滑動控件滑動到邊緣的光暈效果
下面以RecycleView爲例,其他可滑動控件也是一樣的 在XML中設置: <android.support.v7.widget.RecyclerView android:id="@+id/rv_recycle_view" andr
原创 Math.abs(x)的一個記錄
abs public static int abs(int a) 返回 int 值的絕對值。如果參數爲非負數,則返回該參數。如果參數爲負數,則返回該參數的相反數。 注意,如果參數等於 Integer.MIN_VALUE 的值(即能夠表
原创 onCreate()方法中獲取View的寬高爲0的原因及解決方法
如果需要開發一些需要依賴UI控件的寬度和高度的功能,很多人可能會用到View的getHeight()和getWidth()方法。對於新手來說這裏會有一個小小的陷阱需要注意。如果你試圖在onCreate()方法裏獲取控件的寬高時,發現返
原创 自定義開關按鈕
繼承已有 View 實現自定義 View 通過對 android 原生控件的研究,可以發現 android 中的控件都是繼承 view 類,如 textView、 ImageView 等,通過重寫相關的方法來實現新的效果,通過這個我們
原创 最新Android框架排行榜
一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網絡層、UI層、通信層或其他單一功能的框架 混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架 企業級開源項目:可以獨立運行的ap
原创 PopupWindow點擊外部區域消失
PopupWindow點擊外部區域消失一般有兩種方法,一種是Android api裏面提供的方法,另一種是通過事件分發處理。 第一種方法是在定義好popwindow後,在ShowAtLocation方法調用之前加上 popupWind
原创 Android 判斷當前設備是手機還是平板
/** 判斷當前設備是手機還是平板,代碼來自 Google I/O App for Android @param context @return 平板返回 True,手機返回 False */ public static boole
原创 自定義View
1.什麼是自定義控件 Android 系統中,繼承 Android 系統自帶的 View 或者 ViewGroup 控件或者系統自帶的控件, 並在這基礎上增加或者重新組合成我們想要的效果 2.爲什麼用自定義控件 系統控件無法滿足需求時
原创 [android] setFocusable、setEnabled、setClickable區別,細節的處理
setClickable 設置爲true時,表明控件可以點擊,如果爲false,就不能點擊;“點擊”適用於鼠標、鍵盤按鍵、遙控器等; 注意,setOnClickListener方法會默認把控件的setClickable設置爲true
原创 java中字節流與字符流的區別?
現在已經給我出了兩種數據流,那麼開發之中到底該使用哪一種?有什麼區別;字節流直接與終端進行數據交互,而字符流需要將數據經過緩衝區處理後纔可以輸出。 在使用OutputStream輸出數據的時候即使沒有關閉輸出流,那麼內容也可以正常輸出
原创 java中io之Reader的demo
import java.io.File; import java.io.FileReader; import java.io.Reader; public class ReaderDemo { public static void m