
【SuperTextView english document】
點擊此處,查看《SuperTextView 開發(fā)參考文檔》
點擊此處,查看詳細(xì)的《SuperTextView API文檔》
SuperTextView 被打造來幫助 Android 開發(fā)者更高效、更便捷、更優(yōu)雅的開發(fā) Android 應(yīng)用。
現(xiàn)在,這一誠意之作再次升級。全新的 SuperTextView 將向 Android 開發(fā)者開放更多可能性,當(dāng)然一如既往,SuperTextView 也帶來了更多高效的功能。
神奇的著色

SuperTextView 此次的升級,為 StateDrawable 增加了神奇而強(qiáng)大的著色能力。開發(fā)者可以輕松的改變一個圖標(biāo)的顏色,而不用再增加一個僅僅是顏色不同的圖標(biāo)到項目中。這項技術(shù)將為你的 Android 應(yīng)用程序帶來一次瘦身的機(jī)遇。
# 修改 drawable 的顏色
app:stv_state_drawable_tint="@color/gray"
# 修改 drawable2 的顏色
app:stv_state_drawable2_tint="@color/red"
只需要如此一行簡單的代碼,就能瞬間賦予一張圖片千變?nèi)f化的能力。想要任何色彩,當(dāng)然是你說了算。而這一切的發(fā)生,無需再引進(jìn)另外一張圖片。
在 Java 代碼中,有與之對應(yīng) set/get 函數(shù),讓開發(fā)者可以在任何時候都能施展魔法,改變一張圖片的色彩。
七十二般變化
對 StateDrawable 的增強(qiáng),不僅僅限于顏色的變換。SuperTextView 更被賦予了改變 StateDrawable 形態(tài)的能力。同樣的一張圖,開發(fā)者可以組合出無數(shù)種可能。

只需簡單的幾行代碼,你便可以隨心所欲的變換任何一張圖片。
# 修改 drawable 的旋轉(zhuǎn)角度
app:stv_state_drawable_rotate="90"
# 修改 drawable2 的旋轉(zhuǎn)角度
app:stv_state_drawable2_rotate="90"
無需復(fù)雜的代碼,SuperTextView 一如既往的簡潔、優(yōu)雅。
同樣,在 Java 代碼中,也提供了對應(yīng)的 set/get 函數(shù)。
這項能力,可以有效的幫助開發(fā)者將 Android 應(yīng)用的體積向著極致的方向壓縮。
精彩遠(yuǎn)不止于此

這就是漸變文字!
SuperTextView 所提供的可能是目前為止實現(xiàn)漸變文字最簡潔、優(yōu)雅的解決方案。只需要簡單的配置,就能實現(xiàn)酷炫的漸變文字效果。
# 是否啟用漸變色文字
app:stv_textShaderEnable="true"
# 設(shè)置文字的起始漸變色
app:stv_textShaderStartColor="@color/red"
# 設(shè)置文字的結(jié)束漸變色
app:stv_textShaderEndColor="@color/yellow"
# 設(shè)置文字的漸變的模式
# leftToRight:左 -> 右
# rightToLeft:右 -> 左
# topToBottom:上 -> 下
# bottomToTop:下 -> 上
app:stv_textShaderMode="leftToRight"
這些屬性也在 Java 中開放了 set/get 接口,便于開發(fā)者隨時動態(tài)的修改它們。
開放了新的 API
1. Adjuster 增加 onAttach、onDetach
Adjuster 增加了兩個新的函數(shù):
-
onAttach():當(dāng) Adjuster 被設(shè)置到一個 SuperTextView 中時會被調(diào)用。 -
onDetach():當(dāng) Adjuster 被從一個 SuperTextView 中移除時會被調(diào)用。
通過在 Adjuster 中重寫這兩個函數(shù),開發(fā)者可以在正確的時機(jī)進(jìn)行狀態(tài)注冊、初始化,或者取消注冊、釋放資源等操作。
public class MyAdjuster extends SuperTextView.Adjuster{
@Override
protected void adjust(SuperTextView superTextView, Canvas canvas) {
}
@Override
public void onAttach(SuperTextView stv) {
// 當(dāng) Adjuster 被加入一個 SuperTextView 時會被調(diào)用
}
@Override
public void onDetach(SuperTextView stv) {
// 當(dāng) Adjuster 被從 SuperTextView 移除時會被調(diào)用
}
}
2. 提供 getAdjusterList() 函數(shù)
這個函數(shù)可以讓開發(fā)者獲得一個 SuperTextView 中的所有 Adjuster。如果 SuperTextView 中沒有 Adjuster 的話,將會返回 null。
?? 你必須重視這些變化
1. 屬性增加了 stv_ 前綴
現(xiàn)在,SuperTextView 的所有屬性都加上了前綴 stv_。
這樣做可以避免當(dāng)開發(fā)者引入的其它第三方庫時,與 SuperTextView 可能產(chǎn)生的屬性名沖突。
如果開發(fā)者目前正在使用一個此前版本的 SuperTextView,那么當(dāng)升級到新的版本后,需要在所有 xml 中的屬性前加上 stv_ 前綴。
得益于現(xiàn)代 IDE 的強(qiáng)大,開發(fā)者可以輕松的完成這些工作。就像下面這樣。
app:corner="10dp"
corner 是舊版本中的屬性名稱,升級到新版本后,需要在前面增加 stv_ 前綴,變?yōu)?stv_corner。

如果開發(fā)者使用的是 AndroidStudio,從 Edit > Find > Replace 打開批量替換對話框,然后按照下圖操作即可。

如果開發(fā)者的項目中只有 SuperTextView 使用了相同的命名空間(如 app),那么很幸運(yùn),你可以直接將 app: 替換為 app:stv_ 即可。
2. setAdjuster(Adjuster) 已被移除
從 SuperTextView v2.0 版本開始,setAdjuster(Adjuster) 函數(shù)就被標(biāo)記為了將被移除的狀態(tài),同時加入了新的函數(shù) addAdjuster(Adjuster) 作為替代。
在新的版本中,setAdjuster(Adjuster) 函數(shù)將被正式移除,如果開發(fā)者此前使用了該方法,請將其修改為 addAdjuster(Adjuster)。
如何開始 SuperTextView v3.1.1
dependencies {
compile 'com.github.chenBingX:SuperTextView:v3.1.1'
}
- 如果你喜歡 SuperTextView,希望能到 Github 點個 star ?? 哦!
- CoorChice 會不定期的在博客平臺分享干貨,快進(jìn)入 CoorChice的【個人主頁】 關(guān)注一波吧。