[Android] Attrで設定してる属性のcolor valueをコードから取得する

メモ的な感じ。

こんな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

タイトルとURLをコピーしました