メモ的な感じ。
こんなattrを作ってたとする。
<!-- 文字色の定義 -->
<declare-styleable name="MyCustomTheme">
<attr name="MainTextColor" format="color" />
</declare-styleable>
このMainTextColorってコードから設定しようとするとどうやるんだよ!
って感じで調べたので晒しておく。
実装
取得の仕方
// attrの色コード取得
fun Activity.getAttrColor(attrResId: Int): Int {
val typedValue = TypedValue()
val theme = this.theme
theme.resolveAttribute(attrResId, typedValue, true)
return typedValue.data
}
色んな所で使いそうだからなんとなく拡張。
現在のテーマから取得してやると取れる。
使い方
getAttrColor(R.attr.MainTextColor)
呼び出すだけだけどw