SuperTextView 被打造來幫助 Android 開發者更高效、更便捷、更優雅的開發 Android 應用。html
如今,這一誠意之做再次升級。全新的 SuperTextView 將向 Android 開發者開放更多可能性,固然一如既往,SuperTextView 也帶來了更多高效的功能。 git
SuperTextView 這次的升級,爲 StateDrawable 增長了神奇而強大的着色能力。開發者能夠輕鬆的改變一個圖標的顏色,而不用再增長一個僅僅是顏色不一樣的圖標到項目中。這項技術將爲你的 Android 應用程序帶來一次瘦身的機遇。 github
# 修改 drawable 的顏色
app:stv_state_drawable_tint="@color/gray"
# 修改 drawable2 的顏色
app:stv_state_drawable2_tint="@color/red"
複製代碼
只須要如此一行簡單的代碼,就能瞬間賦予一張圖片變幻無窮的能力。想要任何色彩,固然是你說了算。而這一切的發生,無需再引進另一張圖片。canvas
在 Java 代碼中,有與之對應 set/get 函數,讓開發者能夠在任什麼時候候都能施展魔法,改變一張圖片的色彩。bash
對 StateDrawable 的加強,不單單限於顏色的變換。SuperTextView 更被賦予了改變 StateDrawable 形態的能力。一樣的一張圖,開發者能夠組合出無數種可能。 app
只需簡單的幾行代碼,你即可以爲所欲爲的變換任何一張圖片。 ide
# 修改 drawable 的旋轉角度
app:stv_state_drawable_rotate="90"
# 修改 drawable2 的旋轉角度
app:stv_state_drawable2_rotate="90"
複製代碼
無需複雜的代碼,SuperTextView 一如既往的簡潔、優雅。 svg
一樣,在 Java 代碼中,也提供了對應的 set/get 函數。函數
這項能力,能夠有效的幫助開發者將 Android 應用的體積向着極致的方向壓縮。ui
這就是漸變文字!
SuperTextView 所提供的多是目前爲止實現漸變文字最簡潔、優雅的解決方案。只須要簡單的配置,就能實現酷炫的漸變文字效果。
# 是否啓用漸變色文字
app:stv_textShaderEnable="true"
# 設置文字的起始漸變色
app:stv_textShaderStartColor="@color/red"
# 設置文字的結束漸變色
app:stv_textShaderEndColor="@color/yellow"
# 設置文字的漸變的模式
# leftToRight:左 -> 右
# rightToLeft:右 -> 左
# topToBottom:上 -> 下
# bottomToTop:下 -> 上
app:stv_textShaderMode="leftToRight"
複製代碼
這些屬性也在 Java 中開放了 set/get 接口,便於開發者隨時動態的修改它們。
Adjuster 增長了兩個新的函數:
onAttach()
:當 Adjuster 被設置到一個 SuperTextView 中時會被調用。onDetach()
:當 Adjuster 被從一個 SuperTextView 中移除時會被調用。經過在 Adjuster 中重寫這兩個函數,開發者能夠在正確的時機進行狀態註冊、初始化,或者取消註冊、釋放資源等操做。
public class MyAdjuster extends SuperTextView.Adjuster{
@Override
protected void adjust(SuperTextView superTextView, Canvas canvas) {
}
@Override
public void onAttach(SuperTextView stv) {
// 當 Adjuster 被加入一個 SuperTextView 時會被調用
}
@Override
public void onDetach(SuperTextView stv) {
// 當 Adjuster 被從 SuperTextView 移除時會被調用
}
}
複製代碼
這個函數可讓開發者得到一個 SuperTextView 中的全部 Adjuster。若是 SuperTextView 中沒有 Adjuster 的話,將會返回 null。
如今,SuperTextView 的全部屬性都加上了前綴 stv_
。
這樣作能夠避免當開發者引入的其它第三方庫時,與 SuperTextView 可能產生的屬性名衝突。
若是開發者目前正在使用一個此前版本的 SuperTextView,那麼當升級到新的版本後,須要在全部 xml 中的屬性前加上 stv_
前綴。
得益於現代 IDE 的強大,開發者能夠輕鬆的完成這些工做。就像下面這樣。
app:corner="10dp"
複製代碼
corner 是舊版本中的屬性名稱,升級到新版本後,須要在前面增長 stv_
前綴,變爲 stv_corner
。
若是開發者使用的是 AndroidStudio,從 Edit > Find > Replace
打開批量替換對話框,而後按照下圖操做便可。
若是開發者的項目中只有 SuperTextView 使用了相同的命名空間(如 app
),那麼很幸運,你能夠直接將 app:
替換爲 app:stv_
便可。
從 SuperTextView v2.0 版本開始,setAdjuster(Adjuster)
函數就被標記爲了將被移除的狀態,同時加入了新的函數 addAdjuster(Adjuster)
做爲替代。
在新的版本中,setAdjuster(Adjuster)
函數將被正式移除,若是開發者此前使用了該方法,請將其修改成 addAdjuster(Adjuster)
。
dependencies {
compile 'com.github.chenBingX:SuperTextView:v3.1.1'
}
複製代碼
若是你喜歡 SuperTextView,但願能到 Github 點個 star 🌟 哦!
CoorChice 會不按期的在博客平臺分享乾貨,快進入 CoorChice的【我的主頁】 關注一波吧。