原创 高級UI-DrawerLayout側滑

側滑的方案有很多種,早期的開源SliddingMenu,以及後來的DrawerLayout以及NavigationView等都可實現側滑效果,這裏介紹的是DrawerLayout,下一節將介紹NavigationView 原理 D

原创 高級UI-RecyclerView頭部和尾部添加

在ListView中,可以添加頭部和尾部,其添加方法也是十分的簡單,直接調用listview.addHeaderView(view);和listview.addFooterView(view);即可,但在RecyclerView中

原创 高級UI-Palette

Google推出的Palette是用來調色的,正如其漢語意思一樣,可以用來顯示顏色,在顯示圖片的時候,會配合圖片的色調來顯示,這樣就顯得很融合,其實Palette可以分析出圖片中的很多特性,例如主色調、鮮豔度、柔和度等 Palet

原创 高級UI-符合MD的常用控件

在Google提供的控件中,在support-design及v4,v7包中,存在着很多符合MD標準的控件,這裏羅列出一些常用的控件 TextInputLayout 這個控件在作爲輸入框的時候是極其方便及好用的,結合EditText

原创 高級UI-RecyclerView拖拽和側滑

RecyclerView強大的地方在於高度的可定製,正式由於此優點,現在的項目大多使用RecyclerView,這裏我們仿照QQ的功能,實現RecyclerView的拖拽和側滑功能 功能說明 上下拖拽,實現Item的交換 左右側滑

原创 高級UI-TableLayout

TableLayout選項卡,用於需要使用選項卡的場景,一般是用於切換Fragment,現在的主流做法一般是TableLayout+ViewPager+Fragment,綜合實現選項卡的操作 由於TableLayout位於supp

原创 高級UI-NavigationView側滑

NavigationView是遵循MD設計規範的側滑模式,推薦使用 要使用NavigationView,就需要引入support-design依賴 implementation 'com.android.support:desig

原创 高級UI-Snackbar

在與用戶的交互中,最爲常用的Toast和Dialog,但二者都存在其侷限,Toast無法與用戶進行交互,Dialog雖然可以與用戶交互,但卻會阻斷用戶操作的連貫性,介於二者之間的平衡,Snackbar孕育而生 自定義Toast 首

原创 《Android開發藝術探索》讀書筆記-Android的生命週期和啓動模式

Activity的生命週期全面分析 Activity的生命週期可分爲兩部分,一種是在正常的執行過程中的生命週期,另一種則是在執行過程中發生異常情況的生命週期,這兩種情況在實際開發中都有着的極爲重要的作用,因此弄清楚這裏面的關係就顯

原创 Python-1-搭建編程環境

當前存在兩個版本的Python,Python2和Python3,一般來說,編程語言的迭代都是向前兼容的,但在Python中2和3卻不是這種關係,嚴格來說Python3更像是另起爐竈,官方文檔中也說了,後面會取消對Python2的更

原创 默認電話研究

默認電話研究 背景 Android 從6.0開始,允許用戶設置默認短信和默認電話應用,使用相應的 Intent 便可以設置默認應用 從一個框架說起 從 API 21 開始,谷歌添加了 TelecomManager 用於提供對電話通

原创 Python-2-變量和簡單數據類型

既然是編程語言,那麼就肯定會涉及到一個重要的概念–變量,變量是編程的起點,這句話一點都沒毛病,有了變量的存在,程序纔有更多的可能性。Python的基本數據類型包括數字,字符串,布爾值,列表,元組,字典 註釋 之所以第一個要提到註釋

原创 Python-3-列表和元組

程序是用來處理數據的,那麼有兩個重要的問題,數據從何而來以及如何存儲,這裏主要說的就是後一個問題,數據如何存儲,Python提供了很好的數據存儲類型,列表,元組和字典 列表 列表定義 什麼是列表,列表是由一系列按特定順序排列的元素

原创 Python-4-流程控制

原本緊接列表後面應該時字典的內容,但在這裏,先插入一個編程語言中比較常用的概念:流程控制。編程語言的流程可分爲三種:順序,條件,循環本文依次闡述其在python中的代碼體現形式 順序結構 最常見的就是順序結構,也就是說代碼是逐行執

原创 Python-5-字典

接觸過編程的人應該都知道JSON這個數據格式,python的字典的組織形式類似於JSON,在Python中,字典是一系列鍵-值對 。每個鍵都與一個值相關聯。 字典示例 people = {'name': 'Jack', 'age'