原创 仿專題訂閱功能

在Android開發中,有些時候會涉及到專題訂閱,訂閱專題無非是添加/移除專題。而我們的產品的訂閱功能稍微有點不同,專題數默認7個,只能替換專題,不能夠取消/新添專題,這裏給出展示如下圖: 實現過程如下: 1、自定義專題訂閱容

原创 Android虛擬鍵遮擋控件

隨着手機行業的快速發展,越來越多的手機產商在追求極致的過程中,逐漸用虛擬按鍵代替了物理按鍵。 在帶有虛擬鍵的機子測試時,就會發現有些UI控件完全被底部的虛擬按鍵擋住了(雖然可以隱藏虛擬按鍵,可還是影響用戶體驗),效果圖如下:

原创 json之FastJson解析

fastjson的使用 一、JSON(JavaScript OjectNotation)是一種輕量級的數據交換方式。易於人的閱讀和編寫。也正是由於Json格式數據的簡單和易用性,越來越多的開發者開始使用Json,以此同時,很多公司

原创 ScrollView中軟鍵盤彈出依然遮住控件

在一個Activity頁面中,常會有需要用戶輸入的文本控件EditText,EditText獲取焦點後,彈出的軟鍵盤往往會遮擋底部的其他控件,通常處理方法是: 1、xml佈局中,使用ScrollView包含用戶控件; 2、Man

原创 Android技巧之drawablePadding設置

1.問題 我想很多小夥伴都和我一樣應該很喜歡TextView中drawableLeft、drawableTop、drawableRight、drawableBottom這幾個屬性,因爲我們可以直接用它來畫出來一個圖文排列的標籤或

原创 RecycleView 分割線設置及監聽滾動狀態

一、RecycleView 分割線 ListView中的分割線可以通過屬性divider和dividerHeight分別設置顏色值/圖片及分割線高度。而RecycleView並沒有提供這兩個屬性設置分割線。 作爲ListView

原创 查看簽名apk調試日誌工具

Android Studio可以調試debug apk,通過logcat查看日誌;可並不能用來調試經過簽名的release apk,這時候可以考慮用Eclipse的logcat查看簽名的apk日誌,但Eclipse佔用內存太大了,

原创 retrofit 2.0 簡單使用

Retrofit與okhttp都是出於Square公司,Retrofit對okhttp做了一層包裝,把網絡請求都交給了okhttp(可以參考okhttp3使用),因此只需要簡單的配置,就能用Retrofit進行網絡請求。 一、引入

原创 Android 無線調試

相信很多Android開發者,都不會選擇用Android模擬器調試app吧。Android自帶的模擬器非常慢,佔用計算機內存多,若是計算機內存比較小(4G),便會拖垮計算機的整體性能。 所以很多Android開發者,都會選擇使用真

原创 Android循環添加多個控件

在Android開發中,我們有時候會在一個容器(例如:LinearLayout)中添加多個子控件,由於對控件的操作必須在主線程中,因此過多的佔用主線程,勢必會使程序終止退出。 在下面的例子中,我們在一個LinearLayout容器

原创 Android設定字體大小,不隨系統變化

在app開發中,我們經常會限定字體大小,不跟隨系統設定的字號變化。所以在編寫頁面時,會經常使用dp,而不是sp; <LinearLayout xmlns:android="http://schemas.android.com/ap

原创 Android開發中使用MVP模式

一、爲什麼使用MVP模式 在Android開發中,Activity並不是標準的MVC模式中的controller,它的首要職責是加載應用佈局,處理用戶操作並做出響應。隨着界面及邏輯的複雜度不斷提升,Activity的職責便不斷增

原创 Android Studio多渠道多環境打包框架搭建

在我們做APP開發時,很多時候會切換不同的網絡環境進行調試,有時候還會針對不同的網絡環境打多個渠道包讓測試人員針對不同開發環境測試,更多的時候是一臺手機安裝多個不同環境的APP進行測試。而Android Studio很好的理解了我

原创 搜索框中搜索符號居中

在Android開發時,常常會添加搜索框,有時更會高仿ios搜索控件,將搜索符號顯示在搜索框的中間,當點擊搜索框時,又將搜索按鈕移到左側。如下圖演示(生成gif被壓縮了) 先給搜索框添加布局 <RelativeLayout

原创 AlertDialog底部彈出並橫向鋪滿屏幕

當我們彈出一個AlertDialog時,AlertDialog提示框通常表現爲懸浮在一個頁面上,周圍都是帶黑色透明度的遮板。 AlertDialog.Builder builder = new A