原创 Android開源項目 -- 輪播Banner

一、項目簡介 項目地址:https://github.com/zhangtiansimple/CarouselBanner 效果圖:   二、技術選型 本開源項目採用RecycleView實現,由於一直輪播的關係,需要不斷的加載下一頁,借

原创 Android常用工具 -- 顏色透明度

在開發中常常會遇到這種情況,設計師給出的色值有一個透明度,這個時候就需要我們自己添加在色值的前兩位,下面是常用透明度對照表 <!--透明度百分比 : 8位顏色值前兩位--> <!--100% : FF--> <!--95

原创 Android TabLayout -- 反射修改TabLayout下劃線(Indicator)寬度失效的問題

在使用TabLayout的時,常常會遇到修改下劃線(indicator)的需求,但是源碼並沒有提供修改寬度的api,而是始終和最長的下劃線寬度保持一致,這點可以在源碼裏得出結論,源碼如下(api26後源碼有修改,這也就是爲什麼網上很多修改

原创 Android基礎 -- 自定義View中構造代碼塊的使用

自定義View想必大家都不陌生,會想自定義View的第一步,就是給它添加不同的構造方法,然後這裏可能會有不同的寫法,下面是兩種常見的寫法。 第一種是在每個構造方法裏都加上初始化方法 public CustomView(Context c

原创 Android進階 -- Retrofit源碼結構

Retrofit的源碼結構是很簡單的,注意這裏說的是源碼結構,不是源碼細節,源碼細節十分複雜,本篇文章在於理清Retrofit的源碼結構及分享一種看源碼的方法。   一、Retrofit的使用 使用這裏使用官方文檔的例子 1.新建一個存放

原创 Android基礎 -- 子線程可以修改UI嗎?

子線程可以修改UI嗎?爲什麼會產生這樣的問題,可能是因爲在開發過程中遇到了 "Only the original thread that created a view hierarchy can touch its views." 這個

原创 Android Fragment退出 返回上一個Fragment與直接退出

例如應用底部有兩個導航按鈕A與B,剛進入的時候顯示爲第一個AFragment,點擊B切換到BFragment。 如果需求是在BFragment點擊返回鍵回到AFragment,需要配置 app:defaultNavHost="true"

原创 ViewModelProviders is deprecated

原有的創建ViewModel的方法: viewModel = ViewModelProviders.of(this).get(ViewModel.class); 提示ViewModelProviders過時   改爲: viewMod

原创 Android進階 -- 知乎Matisse源碼解析(二)

上一篇分析了啓動MatissActivity之前的邏輯,接下來看MatissActivity。   一、實現接口 public class MatisseActivity extends AppCompatActivity implem

原创 Android進階 -- 知乎Matisse源碼解析(三)

這篇博客來重點關注Matisse裏的自定義View,在MatisseActivity裏,看到的邏輯十分流暢,是因爲將細節部分都已經封裝到了這些不同的組件中了,接下來一起看看這些組件的具體實現。 一、AlbumSpinner AlbumSp

原创 Android進階 -- 知乎Matisse源碼解析(一)

Matisse做了這樣一件事情,在需要選擇圖片視頻的時候,調用 Matisse.from(MainActivity.this) .choose(MimeType.allOf()) .countable(t

原创 Android進階 -- 屏幕刷新機制

關於屏幕卡頓,從表象來講,是因爲主線程有耗時操作,導致屏幕繪製掉幀,屏幕每16毫秒會刷新一次,也就是每秒刷新60次,人眼能感覺到的卡頓的幀率是每秒24幀。所以解決卡頓的一般處理方法就是將耗時操作放在子線程、減少View層級、多使用incl

原创 LeetCode分類整理及解題記錄

Github項目地址: https://github.com/zhangtiansimple/Leetcode 如果有那麼一點點幫助到了小夥伴,還請給予個小小的star鼓勵~

原创 Android動畫基礎 -- 屬性動畫

Android動畫主要分爲三類,幀動畫、補間動畫和屬性動畫 本篇博客一起來看屬性動畫   一、什麼是屬性動畫 屬性動畫(Property Animation)是在Android3.0才推出的,並不像幀動畫與補間動畫一樣很早就進入了江湖。那

原创 Android動畫基礎 -- 補間動畫

Android動畫主要分爲三類,幀動畫、補間動畫和屬性動畫 本篇博客一起來看補間動畫   一、什麼是補間動畫 補間動畫通過確定開始的視圖樣式和結束的視圖樣式,在狀態轉移的過程中,系統做了一個補全的動畫。   二、補間動畫的特點 補間動畫只