Android中的ColorStateList是一種用來定義不同狀態下的顏色變化的資源類型,可以用來實現按鈕在不同狀態下的顏色變化效果。以下是一個示例代碼,演示了如何使用ColorStateList實現多種按鈕效果:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/color_pressed"/>
<item android:state_focused="true" android:color="@color/color_focused"/>
<item android:color="@color/color_normal"/>
</selector>
<color name="color_normal">#FF0000</color>
<color name="color_pressed">#00FF00</color>
<color name="color_focused">#0000FF</color>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:background="@drawable/color_selector"/>
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 按鈕被點擊時的邏輯處理
}
});
通過以上步驟,就可以實現按鈕在普通狀態、按下狀態和獲取焦點狀態下的顏色變化效果。在ColorStateList中可以定義更多的狀態,如禁用狀態等,以實現更加復雜的按鈕效果。