原创 第十九條:接口只用來定義方法

一、接口的不良實現 有些程序將創建方法以外的事情,放在接口中,比如說:在接口中定義常量。 <span style="font-size:18px;">public interface FinalNumber { final int N

原创 第二十六條:優先考慮泛型

一、利用Object寫的堆棧實例 public class CommonStack { private static final int DEFAULT_SIZE = 16; //用來存儲的數組 private Object[] o

原创 第二十三條:不要在新代碼中使用原生類型

一、泛型的術語 類型參數:public class Request<E>{} 其中的E就是類型參數。 參數化類型:List<String> 這叫做參數化類型。 原生類型:List  沒有泛型的類,叫做原生。 補:在JAVA中是不推薦使用

原创 第二十五條:列表優先於數組

一、數組與列表容器的比較 ①、協變與不可變類型: 數組:是協變類型的。協變的意思就是Number是Integer的父類,那麼Number[] data = new Integer[]; 是成立的。 列表:是不可變類型。就是說無法List<

原创 第二十七條:優先使用泛型方法

一、泛型方法的優點(一) 優點:泛型方法能夠推斷出輸入參數中的參數類型 例: public <E> E getType(E type){ return type; }//當使用該方法的時候,虛擬機能夠推斷出輸入的參數的類型是什麼,並返

原创 自定義View——PorterDuffXfermode

楔子 我們在自定義的過程,經常會遇到多個圖形相交的問題(如下圖),那麼系統是如何處理圖片相交部分的繪製的呢? View的基本框架(之後的代碼都是基於該View): public class PorterDuffXfermodeView

原创 自定義View——Shader的使用

楔子——Shader 我們在生活中經常會使用到一些漸變效果如: 那麼在自定義View的時候我們如何在我們的View上添加這種效果呢? 並且我們在特效中經常看到一些就是背景顏色彷彿在流動的字這種效果又是如何實現的呢? 這些都是使用了S

原创 模仿超級課程表——抓取學校課表數據

本文參考自:打造超級課程表 一、顯示課表頁面的製作 ①、介紹 用過的超標的同學都知道,超標的課表頁面是可以滑動的,並且背景爲透明色,可以任意修改背景。 效果展示: ②、製作流程 那麼如何製作出這樣的表格呢? (1)、首先我們得知道,An

原创 Fragment實際開發中的使用

一、結合TabLayout實現Fragment的切換效果 ①、添加依賴: compile 'com.android.support:design:23.2.0'(版本根據個人的api修改,本人是api 23) Google在2015的IO

原创 單元測試——使用Mock

一、Mock簡介 背景:小明和小剛要爲app製作一個登陸功能,小明負責網絡交互獲取服務器的認證數據,小剛負責將獲取到的數據寫入到數據庫中,然後能夠使用戶自動登陸。小剛的開發的速度比較快,已經完成了數據庫互這一塊,但是小明的網絡交互還沒有開

原创 如何製作表格(二)—— GridLayout

我們已經知道了TableLayout是如何時候了,那麼現在我們要開始講解GridLayout是如何使用的。 一、GridLayout的由來 爲什麼還需要GridLayout,我感覺我已經可以用TableLayout做出所有表格了︿( ̄︶ ̄

原创 如何製作表格(一)——TableLayout

一、Android中能夠用於網格佈局的控件(製作各種這樣的表格) Android提供了四種方式來製作表格,分別爲: TableLayout、GridLayout、GridView、Recycler中的GridLayoutManager模式

原创 UI進階——Style的詳細介紹

楔子 在android UI的開發中,合理的利用style資源是必不可少的一件事。但是個人翻閱很多文章,很少有詳細的描述style的原理及其具體的使用。所以決定寫一篇詳細描述style的文章。 style的簡單描述 style的作用 當創

原创 Material Design——Coordinator Layout

楔子 最近正在模仿製作知乎日報,知乎日報的詳情頁有這樣的效果。經過查詢之後發現原來可以使用Coordinator Layout完成該效果,所以就好好學了一下這個View。 CoordinatorLayout簡介 CoordinatorL

原创 FrameLayout的使用進階

前提:創建兩個Fragment(個人叫FirstFragment,SecondFragment),由於本篇幅不是講解如何使用Fragment,所以就不上詳細創建步驟了。 效果圖: 一、如何切換Fragment ①、瞭解Fragment