Jetpack Compose Color型変換

Color型をBundleに保存できるようにするカスタムSaver

Color → String

Compose の Color は内部的に Long 値を持っています。

ただし Compose の内部表現はバージョンによって扱いが少し特殊なので、実務では ARGB を明示的に取り出す方がおすすめです。

val color = Color(0xFF2196F3)

println(color.toHexString())

結果

#FF2196F3

String → Color

使用例

val color = "#FF2196F3".toComposeColor()

JSON保存用のデータクラス

@Serializable
data class SettingData(
    val buttonColor: String
)

保存

val data = SettingData(
    buttonColor = selectedColor.toHexString()
)

JSON

{
  "buttonColor": "#FF2196F3"
}

復元

val color = data.buttonColor.toComposeColor()
タイトルとURLをコピーしました