เมื่อคุณใช้ android:background
คุณจะเปลี่ยนสไตล์และความรู้สึกของปุ่มด้วยสีที่ว่างเปล่า
อัปเดต:ในเวอร์ชัน 23.0.0ของAppCompatมีWidget.AppCompat.Button.Colored
รูปแบบใหม่ที่ใช้ธีมของคุณcolorButtonNormal
สำหรับสีที่ปิดใช้งานและcolorAccent
ที่เปิดใช้งาน
วิธีนี้ช่วยให้คุณสามารถนำไปใช้กับปุ่มของคุณโดยตรงผ่าน
<Button
...
style="@style/Widget.AppCompat.Button.Colored" />
หากคุณต้องการกำหนดเองcolorButtonNormal
หรือcolorAccent
คุณสามารถใช้ThemeOverlay
ตามที่อธิบายไว้ในเคล็ดลับนี้และandroid:theme
ที่ปุ่ม
คำตอบก่อนหน้า
คุณสามารถใช้ drawable ในไดเรกทอรี v21 ของคุณสำหรับพื้นหลังของคุณเช่น:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
วิธีนี้จะทำให้สีพื้นหลังของคุณเป็นแบบเคลื่อนไหว?attr/colorPrimary
และมีภาพเคลื่อนไหวระลอกคลื่นเริ่มต้นโดยใช้ค่าเริ่มต้น?attr/colorControlHighlight
(ซึ่งคุณสามารถตั้งค่าในชุดรูปแบบของคุณได้หากต้องการ)
หมายเหตุ: คุณจะต้องสร้างตัวเลือกที่กำหนดเองสำหรับน้อยกว่า v21:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primaryPressed" android:state_pressed="true"/>
<item android:drawable="@color/primaryFocused" android:state_focused="true"/>
<item android:drawable="@color/primary"/>
</selector>
สมมติว่าคุณมีสีที่คุณต้องการสำหรับค่าเริ่มต้นกดและสถานะโฟกัส โดยส่วนตัวแล้วผมจับภาพหน้าจอของระลอกคลื่นกึ่งกลางผ่านการเลือกและดึงสถานะหลัก / โฟกัสออกจากนั้น