誠意之做,SuperTextView (v3.1.1)

【SuperTextView english document】
點擊此處,查看《SuperTextView 開發參考文檔》
點擊此處,查看詳細的《SuperTextView API文檔》
【SuperTextView 歷史文檔】

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 接口,便於開發者隨時動態的修改它們。

開放了新的 API

1. Adjuster 增長 onAttach、onDetach

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 移除時會被調用
    }
}
複製代碼

2. 提供 getAdjusterList() 函數

這個函數可讓開發者得到一個 SuperTextView 中的全部 Adjuster。若是 SuperTextView 中沒有 Adjuster 的話,將會返回 null。

⚠️ 你必須重視這些變化

1. 屬性增長了 stv_ 前綴

如今,SuperTextView 的全部屬性都加上了前綴 stv_

這樣作能夠避免當開發者引入的其它第三方庫時,與 SuperTextView 可能產生的屬性名衝突。

若是開發者目前正在使用一個此前版本的 SuperTextView,那麼當升級到新的版本後,須要在全部 xml 中的屬性前加上 stv_ 前綴。

得益於現代 IDE 的強大,開發者能夠輕鬆的完成這些工做。就像下面這樣。

app:corner="10dp"
複製代碼

corner 是舊版本中的屬性名稱,升級到新版本後,須要在前面增長 stv_ 前綴,變爲 stv_corner

若是開發者使用的是 AndroidStudio,從 Edit > Find > Replace 打開批量替換對話框,而後按照下圖操做便可。

若是開發者的項目中只有 SuperTextView 使用了相同的命名空間(如 app),那麼很幸運,你能夠直接將 app:替換爲 app:stv_ 便可。

2. setAdjuster(Adjuster) 已被移除

從 SuperTextView v2.0 版本開始,setAdjuster(Adjuster) 函數就被標記爲了將被移除的狀態,同時加入了新的函數 addAdjuster(Adjuster) 做爲替代。

在新的版本中,setAdjuster(Adjuster) 函數將被正式移除,若是開發者此前使用了該方法,請將其修改成 addAdjuster(Adjuster)

如何開始 SuperTextView v3.1.1

dependencies {
     compile 'com.github.chenBingX:SuperTextView:v3.1.1'
}
複製代碼

SuperTextView Github 【傳送門】

相關文章
相關標籤/搜索