androidアプリで動的にボタンを変更するには?

Android Studio

4択のクイズアプリで正解のボタンとそれ以外のボタンの色を変えて、かつ選択したボタンの枠線の太さを変えたいと考えました。まずは setBackgroundColor を使ってみました。

Button1.setBackgroundColor(Color.rgb(255, 255, 255))

結果、色は変わったのですが、事前に設定していた形 (rectangle)や枠線まで消されてしまい、枠なし長方形になってしまいました。

ネットで調べてみると、このような場合はあらかじめ\res\drawableに色と形と枠線を設定したxmlファイルを作って置いて

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_design1p"
        android:state_pressed="true"
        android:state_enabled="true"/>
    <item android:drawable="@drawable/button_design1"
        android:state_pressed="false"
        android:state_enabled="true"/>
</selector>

setBackgroundResource を使ってxmlファイルを指定すればいいと見つけたので

Button1.setBackgroundResource(R.drawable.button_state1)

やってみたらうまくいきました。

コメント

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