原创 用getChildFragmentManager解決Fragment嵌套Fragment數據丟失的問題

如下圖所示的佈局,外邊的紅色大框是個fragment,中間的小框是個viewpager,裏邊包含了若干的fragment。再次進入外邊這個frament的時候,會出現中間viewpager中fragment數據丟失的問題,整個顯示是一個空

原创 Android開發Handler源碼分析

爲什麼使用Handler Android中UI控件的訪問是線程不安全的,加鎖同步訪問會影響性能,因此設置只能一個線程更新UI,就是主線程,或者說是UI線程。在UI線程中不能進行耗時的操作,耗時操作需要開啓一個新的工作線程,工作線程

原创 Android開發中利用imeOptions屬性將鍵盤迴車鍵改成搜索等功能鍵【提高用戶輸入體驗】

Android中鍵盤輸入是用戶輸入交互的最常用最直接的手段,關於鍵盤輸入,有幾點可以提高用戶使用體驗。 第一:彈出鍵盤整體頁面上移,使鍵盤不遮擋控件,需要在AndroidManifest設置對應Activity的windowSoftInp

原创 Android開發自定義控件實現一個圓形進度條【帶數值和動畫】

實現一個如下圖所示的自定義控件,可以直觀地展示某個球隊在某個賽季的積分數和勝場、負場、平局數 首先對畫布進行區域劃分,整個控件分上下兩部分 上邊是個大的圓環,圓環中間兩行文字,沒什麼難度,選好圓心座標和半徑後直接繪製即可,繪製文字也是如

原创 調整數組順序使奇數位於偶數前面,偶數和偶數之間的相對位置不變

題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 思路:先掃描一遍數組,做三件事,1、奇數往前挪,2、統計偶

原创 Android開發Message源碼分析【享元模式|對象池】

享元模式介紹 享元模式是對象池的一種實現,儘可能減少內存的使用,使用緩存來共享可用的對象,避免創建過多的對象。Android中Message使用的設計模式就是享元模式,獲取Message通過obtain方法從對象池獲取,Messa

原创 AndroidStudio導入新項目一直卡在Building gradle project info的解決解決方案

嘗試了各種辦法,翻牆,離線gradle等,發現一個更好用更簡單的辦法: 解決方案: 1.隨便找一個你能運行的as項目 2.打開gradle-wrapper.properties,文件目錄:項目/gradle/wrapper/gradle

原创 Android開發獲取相機拍照的原圖(並非縮略圖)

Android開發拍照上傳是個很常見的功能,通過如下代碼可以激活相機進行拍照: Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

原创 Android 自定義一個輪播圖

有限空間內展示更多的內容,輪播圖是個不錯的選擇,本文將實現一個輪播圖SlideShowView,效果如下圖所示: 因爲輪播圖的每一個頁面都有文字和圖片,爲了整合圖片和文字,SlideShowView選擇繼承Fraement publi

原创 Android自定義控件之實現一個球賽比分條

效果圖如下所示: 該控件需要輸入兩個參數,左邊的得分數和右邊的的分數 然後根據兩邊的得分的比例繪製中間的比分條 首先將控件的寬度平均分配爲10分,第一份和最後一份分別繪製左邊的比分數字和右邊的比分數字 中間的8分寬度繪製比分條 根據左

原创 Volley中listener導致的內存泄露

項目中用Volley作爲http框架,封裝了一個JsonRequest,性能優化的時候,LeakCanary一直提示Volley的listener內存泄露,檢查了很久也沒發現哪裏出現內存泄露 public class JsonReque

原创 封裝Volley使Volley的每個請求都自動保存和發送Cookie

思路很簡單,每次請求獲取到服務器返回的response就解析頭部獲取cookie並保存,發送請求的時候就從本地讀取cookie添加到頭部發送給服務器 第一步,解析http response頭部的cookie並保存,自定義一個Request

原创 RecyclerView.addFocusables出現空指針異常NullPointerException的解決辦法

如果使用的RecyclerView是API22版本,或者更低版本,如果RecycleView沒有設置LayoutManager,那麼RecycleView將會包空指針異常,異常信息只會顯示 java.lang.NullPointerExc

原创 Android開發自定義控件實現一個球賽勝負數統計條

效果如下圖所示,展示兩個球隊交戰勝負信息 首先此控件在水平方向均分爲5份,第一份和第五份留白不繪製內容 第二三四份分別繪製3列數據 垂直方向分爲N份,N和輸入數據的最大值有關 垂直方向下邊百分之二十的空間顯示文本,上邊百分之八十的空間

原创 Android開發中利用imeOptions屬性將鍵盤回車鍵改成搜索等功能鍵【提高用戶輸入體驗】

Android中鍵盤輸入是用戶輸入交互的最常用最直接的手段,關於鍵盤輸入,有幾點可以提高用戶使用體驗。 第一:彈出鍵盤整體頁面上移,使鍵盤不遮擋控件,需要在AndroidManifest設置對應Activity的windowSoftInp