原创 Android小技巧之不緩存的ViewPager

前言 在開發中我們會經常用到ViewPager這個類,比如引導頁的啦,主頁啦,等等之類的。 一般情況下,我在ViewPger中都是放的Framgnt,這樣簡單有方便,但是ViewPager卻會默認的緩存當前頁面的最近兩個頁面,於是

原创 Android 之路 (0) - 序章

Android development framework evolution 從實現最簡單的需求開始,不斷的對代碼結構進行優化、封裝,最終形成一套屬於自己的快速開發框架。 前言 UI方面主要以Design包爲基準,網絡及異步操作

原创 Gradle 使用技巧(三) - dependencies 的類型與區別

前言 dependencies對於Android開發人員來說,並不陌生, 它是用來配置當項目的依賴項,接收的是一個DependencyHandler的閉包。 dependencies的類型 dependencies的類型可以分爲以

原创 Android 之路 (12) - RxLifecycle的集成

引言 引入Rx系列有一個非常大的缺陷:容易造成內存泄露,大多數都是忘記取消訂閱而造成的,本篇就以RxLifecycle進行封裝,在底層實現自動訂閱與取消訂閱。 正文 分析 我們在之前的Android 之路 (4) - 對RxJav

原创 Android 之路 (13) - RxJava請求結果預處理、多數據結構適配及統一錯誤處理

前言 對於大多數開發者來說,我們在做網絡請求的時候,並不想重複的去處理狀態碼,錯誤信息等,我只關心我需要的結果,本文將會講解通用狀態碼的封裝、錯誤信息的統一處理、多種JSON數據格式的適配。 正文 預期目標 統一 success

原创 Android 之路 (7) - 對BaseActivity的簡單封裝

引言 終於到了BaseActivity的封裝了,在本章中將對通用性的一些方法和操作進行抽取,放到Base中。 正文 先起個名字,我們的Base就叫CandyBaseActivity吧,Candy是糖果的意思,我希望這一套東西能讓人

原创 Android 之路 (4) - 對RxJava2的簡單封裝

前言 上篇對Retrofit進行了封裝,本篇將繼續深入對RxJava2的線程轉換、取消訂閱和統一訂閱結果管理相關的封裝。 正文 線程轉換 以下代碼基本上在每個Presenter中都會使用到,每次都要重新寫就比較繁瑣了,而RxJav

原创 Android 之路 (5) - 對Dialog的簡單封裝

引言 前幾篇文章都在對RxJava2和Retrofit的封裝,沒有 Dialog ,看上去還是比較生硬,所以本章就來對Dialog進行封裝。 正文 DialogHelper 爲保證Dialog的可擴展性和可替代性,我們在編碼的時候

原创 Android 之路 (6) - 關於Toast和Log的封裝

引言 上篇完成了對Dialog的簡單封裝,本篇將對Android開發中另外兩個常用工具類的封裝:T(Toast)和L(Log)。 正文 Toast的簡單封裝 這一步主要是將創建 Toast 的佈局抽取出來,形成一個單獨的工具類,調

原创 Android 之路 (8) - Toolbar - NavigationIcon間隙、Title居中、BackText

引言 原生的Toolbar的title是居右顯示的,而大多數情況下UI設計的圖title是居中。另外默認的返回按鈕間隙是16dp,而設計圖上面是按照iOS來設計,所以返回按鈕是8dp,本篇就此進行適配。 正文 Navigation

原创 Android 之路 (11) - 對Toolbar的封裝-實現漸變標題欄與沉浸適配

引言 看過上篇文章的演示,就應該能看到我們在滑動返回的時候,頂部的狀態欄其實是沒和我們的頁面一起滑動的,本篇就此問題進行適配,讓標題欄沉浸到狀態欄中,而且還是能夠適配現在市面上所見的異形屏。 正文 我們要實現下面這樣的一個標題欄,

原创 Android 之路 (3) - 對Retrofit的封裝

引言 上篇中實現了MVP的改造,但是我們的網絡請求部分任然是比較冗餘了,本篇將對Retrofit進行封裝。 正文 思路 對Retrofit進行封裝算是我們基礎框架的一部分,所以我們需要將這部分代碼封裝到 library-core

原创 Android 之路 (1) - RxJava2+Retrofit實現簡單登陸

前言 使用RxJava2+Retrofit實現簡單登陸。 正文 1. Hello world 1.1 相關版本 Android Studio 3.1.3 Gradle 3.1.3 targetSdkVersion 26 supp

原创 Android之路 - 實現高斯模糊的菜單

前言 本章主要用原生的方式實現一個菜單頁面,主要用到的知識點爲==位移動畫==,我們可以先看看效果。 分析 高斯模糊背景 我們的菜單背景是一個高斯模糊的背景,雖然看上去高大上,但是不要被嚇到了,實現原理非常的簡單:==截取 #3a800

原创 Gradle 使用技巧(七) - 10分鐘將快速開源 Jitpack 與增加中文註釋

引言 作爲一個開發者,最自豪的事情就是自己的努力得到了別人的讚賞。這一次就通過一個簡短的系列:如何在最簡短的時間內將自己的lib上傳到中央倉庫供其他人下載,並且增加中文源碼註釋。 選擇 前提條件: - 有GitHub帳號 - 有需要開