原创 Android 搜索結果關鍵字動態匹配篩選變色效果且高亮顯示

分享matcherSearchText方法,返回值是SpannableString,也就是經過我們經過變色處理的文字。主要使用matcher.find()方法找到所有匹配的關鍵字,按照慣例我們看下效果圖 下面就是matcherS

原创 Android 仿微博,探索使用ShortcutManager添加應用程序的快捷方式

在Android 7.1(API 25)之後添加的新功能,應用快捷方式。ShortcutManager管理一個應用程序的快捷方式。只要在長按應用圖標的情況下,在應用圖標上顯示的快捷方式,用戶可以快速訪問任意一個Activity。

原创 Android CoordinatorLayout打造酷炫的頂部欄

CoordinatorLayout常常與AppBarLayout和CollapsingToolbarLayout一起使用,用於打造各種炫酷效果的頂部欄。之前寫過一篇Android 實現酷炫的頂部欄,不過要注意的是這次我們用到And

原创 Android 掃一掃,繪製指定區域透明區域

一、概述 在實現掃一掃的功能的時候,我們需要繪製一箇中間爲透明的掃碼框,其餘部分爲半透明。通常情況下,例如微信或者支付寶的掃碼框都是矩形的,如果中間的掃碼框是一個矩形,那麼佈局是很簡單的,可是如果掃碼框是一個圓角矩形,或者圓形等情況怎麼

原创 Android 6.0動態權限申請

一、概述 從Android 6.0(API 23)開始,系統權限做了很大的改變。在之前,6.0以下的權限及在安裝時,會根據權限聲明產生一個權限列表,用戶只有在同意之後才能完成app的安裝。也就是說當我們想要使用某個app時,就要默默忍受

原创 Android ViewPager的簡單使用

很久以前寫過一篇Android 仿美團網,探索使用ViewPager+GridView實現左右滑動查看更多分類的功能,本篇文章簡單一點,也是說ViewPager。有這麼一個場景,在同一個Activity中,我們需要通過滑動來展示不同的佈局

原创 Android Paging Library 基於RecyclerView的分頁加載框架

一、概述 在2018年5月9日的谷歌開發者大會(Google I/O 2018) 中提出在去年發佈的廣受歡迎的架構組件上,進一步改進並推出了Jetpack。Jetpack能幫助我們更專注提升應用體驗,加快應用開發速度,處理類似後臺任務、

原创 Android 自定義View實現環形帶刻度顏色漸變的進度條

上次寫了一篇Android 自定義View實現環形帶刻度的進度條,這篇文章就簡單了,只是在原來的基礎上加一個顏色漸變。 按照慣例,我們先來看看效果圖 一、概述 1、相比於上篇文章,這裏我們的顏色漸變主要是用到Shader類,通過

原创 Android Kotlin 將函數作爲參數傳遞

Kotlin支持函數作爲參數傳遞,無需構建對象來包裝函數。 1、調用一個無返回的函數作爲參數傳遞爲:方法名()-> Unit class MainActivity : AppCompatActivity() { private v

原创 Android kotlin靜態屬性、靜態方法

Kotlin類不支持靜態方法和成員,但Kotlin支持全局函數和變量,因此我們可以直接使用全局函數和變量來代替類中靜態方法和靜態成員變量。不過還有一個問題沒解決,如果要使用類中的這些全局函數和變量,該如何處理呢? →這就要用到Kotli

原创 Android 自定義View實現環形帶刻度的進度條

本篇文章講的是自定義View實現環形帶刻度的進度條。和往常一樣,主要還是想總結一下自定義View實現環形帶刻度的進度條的開發過程以及一些需要注意的地方。 按照慣例,我們先來看看效果圖 一、我們如何來實現這樣一個環形刻度進度條:

原创 Android 自定義可展開的ExpandTextView

一、概述 可摺疊的textview是一個很常見的功能,相信大家都在微信朋友圈體驗過這種場景:朋友發的笑話都只有半截,下面是一片白色,你要展開全文之後才能知道最後結果。 其實這也不是什麼高大上的東西,按照慣例,我們先來看看效果圖 :

原创 Android RxJava 創建操作符Interval

Interval操作符:用於創建Observable,跟TimerTask類似,用於週期性發送信息,是一個可以指定線程的TimerTask 首先添加類庫 // RxAndroid compile 'io.reactivex

原创 Android字符串+數字變量方法之%1$s、%1$d的用法

(1)%n$md:代表輸出的是整數,n代表是第幾個參數,設置m的值可以在輸出之前放置空格 (2)%n$ms:代表輸出的是字符串,n代表是第幾個參數,設置m的值可以在輸出之前放置空格 (3)%n$mf:代表輸出的是浮點數,n代表是第幾個參

原创 RxJava 理解Backpressure並解決異常 rx.exceptions.MissingBackpressureException

下面我們先用代碼演示一下這種崩潰的場景: private Subscription subscribe; /** * 間隔時間1ms發送一次 */ private void start() {