原创 面向對象六大原則(四):依賴倒置原則

一、概述 依賴倒置原則(Dependence Inversion Principle ,縮寫:DIP),是程序要依賴於抽象接口,不要依賴於具體實現。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合。

原创 面向對象六大原則(一):單一職責原則

一、簡介 單一職責原則(Single Responsibility Principle,縮寫:SRP),它規定一個類應該只有一個引起它發生變化的原因,也就是一個類中應該是一組相關性很高的函數、數據的封裝。 二、原理 如果一個類承擔的

原创 Android RecyclerView使用詳解及實現多選

這裏要說的是RecyclerView的使用,希望能助你完全理解RecyclerView,把它運用到項目中,當然這裏也會提供你簡便的寫法,要知道每次都寫個adapter費時又費力,只能說本人很懶,於是在網上找方法,聰明的你應該知道是

原创 面向對象六大原則(二):開閉原則

一、概述 開閉原則(Open Close Principle,縮寫:OCP),軟件中的對象(類、模塊、函數等)應該對於擴展是“開放”的,但是對於修改是“封閉”的。通俗點講就是軟件系統中包含的各種組件應該在不修改現有代碼的基礎上引入新功能

原创 面向對象六大原則(三):里氏替換原則

一、概述 里氏替換原則(Liskov Substitution Principle ,縮寫:LSP),原則說任何基類可以出現的地方,子類一定可以出現。LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才

原创 Retrofit的簡單封裝--更方便的配置okhttp

前言: Retrofit作爲簡化HTTP請求的庫,已經運行多年,2.0版本依然不辱使命的在做這些事情。不過2.0版本修復了一些長期影響開發者的設計,還加入了前所未有的強大特性。在NYC2015的這一個分享中,Jake Wharton的演講

原创 Android 仿微信羣聊頭像

在網上找了些仿微信羣聊頭像的開源庫後,發現沒特別好用的,或者說滿足我需求的,就只好在別人的基礎上改了下,也就有了這樣的自定義控件了,以此來實現微信羣聊頭像的效果,效果圖如下所示: 主要實現: 一、自定義viewGroup,以此來實現

原创 面向對象六大原則(五):接口隔離原則

一、概述 接口隔離原則(Interface Segregation Principle ,縮寫:ISP),客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。 二、原則 使用多個專門的接口比使用單一的總接口

原创 建造者(Builder)模式

附加--對討厭你的人最好的反擊是,保持微笑和光芒四射,他們最不希望看到這樣的你 這模式也是使用多個簡單的對象構建成一個複雜的對象,將變與不變分離開,我用到過也是對某個類進行相對應的配置,當然你也可以根據你的需求使用這模式,也就你需要生成

原创 Android的回調機制

附加:懶得努力才活的累--因爲你寧願每天都活在自責和愧疚中也懶得去努力,所以就算每天無所事事也會覺得自己活得好累 回調在android開發中是經常使用到的,網上也有很多對回調進行講解,有空的話可以自己去搜搜,這裏附上個點擊打開鏈接等,言

原创 Android本地驗證碼的生成

android客戶端生成本地驗證碼主要用來限制用戶隨意按請求按鈕,其實該示例也是來對自定義view的練練手而已,先給出效果圖吧 其中可定製: *干擾線數目 *干擾點數目 *背景顏色 *驗證碼字體大小及字數 相信以上可以滿足一般

原创 Android 分發事件機制

前言 當Android系統捕獲到用戶的各種輸入事件後,如何準確地傳遞給真正需要這個事件的控件呢?Android給我們提供了一整套完善的事件傳遞、處理機制,來幫助開發者完成準確的事件分配和處理。 基礎知識 MotionEvent 所有觸

原创 ScrollView裏嵌套ListView解決方案

ScrollView裏嵌套ListView 開發中總是會遇到一些難以理解的需求,而我們卻不得不去實現該功能,這次遇到的就是在ScrollView中嵌套個垂直的ListView,要說有必要這麼做嗎,listview本來不就可以上下拉麼,只能

原创 android ndk開發之二 認識jni

什麼是JNI JNI是 Java Native Interface(Java 本地接口) 的縮寫,它是爲了方便Java調用C、C++等本地代碼所封裝的一層接口。使用java與本地已編譯的代碼交互,通常會喪失平臺可移植性。但是,有些情況下這

原创 10分鐘過“第一行代碼”

1.不顯示標題: requestWindowFeature(Window.FEATURE_NO_TITLE); 2.打開網頁: Intent intent = new Intent(Intent.ACTION_VIEW); intent