การตั้งค่าสีพื้นหลังของธีม Android


105

ฉันกำลังพยายามแก้ไขสีธีมพื้นหลังเริ่มต้นซึ่งน่าจะง่าย แต่น่าแปลกที่ฉันไม่สามารถใช้งานได้ โปรดทราบว่าฉันต้องการให้การเปลี่ยนแปลงเกิดขึ้นทั่วทั้งแอปไม่ใช่เฉพาะกิจกรรมเดียว นี่คือรหัสของฉัน:

styles.xml

<resources>

    <color name="white_opaque">#FFFFFFFF</color>
    <color name="pitch_black">#FF000000</color>

    <style name="AppTheme" parent="android:Theme.Light">
        <item name="android:background">@color/white_opaque</item>
        <item name="android:windowBackground">@color/white_opaque</item>
        <item name="android:colorBackground">@color/white_opaque</item>
    </style>

</resources>

และแน่นอนในรายการ

<application
    .
    .
    .
    android:theme="@style/AppTheme" > 
</application>

เอกสาร Android ที่ฉันได้ปรึกษาเกี่ยวกับการปรับเปลี่ยนธีม: http://developer.android.com/guide/topics/ui/themes.html

ฉันได้ลองสลับระหว่าง white_opaque และ pitch_black สำหรับแอตทริบิวต์ xml ทั้งหมด แต่ก็ไม่เปลี่ยนแปลงอะไรเลย ข้อเสนอแนะใด ๆ ?


1
ลองลบช่องอัลฟา
Blundell

เอาล่ะฉันเพิ่งทำยังเหมือนเดิม
Stark

1
นี่เป็นทางออกที่ดีที่สุดที่ฉันได้อ่าน stackoverflow.com/a/33213433/963543
Ata Iravani

คำตอบ:


58

โอเคกลายเป็นว่าฉันทำผิดพลาดจริงๆ อุปกรณ์ที่ฉันใช้ในการทดสอบใช้ Android 4.0.4, API ระดับ 15

ไฟล์ styles.xml ที่ฉันกำลังแก้ไขอยู่ในโฟลเดอร์ค่าเริ่มต้น ฉันแก้ไข styles.xml ในโฟลเดอร์ values-v14 และตอนนี้ก็ใช้งานได้ดี


4
หรือคุณสามารถลบโฟลเดอร์สไตล์อื่น ๆ ได้หากคุณไม่ได้ใช้งาน ฉันมีปัญหาเดียวกันและได้รับการแก้ไขด้วย styles.xml เดียวในโฟลเดอร์ 'values' ปัญหาของฉันคือฉันมีรายการธีมสำหรับกิจกรรมในไฟล์รายการ (ซึ่งแน่นอนว่าทับ AppTheme)
Stephen Hosking

28
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Holo.NoActionBar">
        <item name="android:windowBackground">@android:color/black</item>
    </style>

</resources>

5

เปิดres -> values -> styles.xmlและคุณเพิ่มบรรทัดนี้เปลี่ยนเส้นทางภาพของคุณ<style> <item name="android:windowBackground">@drawable/background</item>ตัวอย่าง:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowBackground">@drawable/background</item>
    </style>

</resources>

นอกจากนี้<item name ="android:colorBackground">@color/black</item>ยังมีผลกระทบไม่เพียง แต่จะส่งผลกระทบต่อพื้นหลังหน้าต่างหลักของคุณเท่านั้น แต่ยังรวมถึงส่วนประกอบทั้งหมดในแอปของคุณด้วย อ่านเกี่ยวกับรูปแบบการปรับแต่งที่นี่

หากคุณต้องการรูปแบบเฉพาะของเวอร์ชัน :

หาก Android เวอร์ชันใหม่เพิ่มแอตทริบิวต์ของธีมที่คุณต้องการใช้คุณสามารถเพิ่มคุณสมบัติเหล่านี้ลงในธีมของคุณได้ในขณะที่ยังเข้ากันได้กับเวอร์ชันเก่า สิ่งที่คุณต้องมีคือไฟล์ styles.xml อื่นที่บันทึกไว้ในไดเร็กทอรีค่าที่มีคุณสมบัติเวอร์ชันทรัพยากร ตัวอย่างเช่น:

res/values/styles.xml        # themes for all versions
res/values-v21/styles.xml    # themes for API level 21+ only

เนื่องจากสไตล์ในไฟล์ values ​​/ styles.xml พร้อมใช้งานสำหรับทุกเวอร์ชันธีมของคุณใน values-v21 / styles.xml จึงสามารถสืบทอดได้ ด้วยเหตุนี้คุณจึงหลีกเลี่ยงการทำซ้ำสไตล์ได้โดยเริ่มต้นด้วยธีม "ฐาน" จากนั้นขยายออกไปในสไตล์เฉพาะเวอร์ชันของคุณ

อ่านเพิ่มเติมได้ที่นี่ (doc ในชุดรูปแบบ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.