Đặt màu nền Chủ đề Android


105

Tôi đang cố gắng sửa đổi màu chủ đề nền mặc định, điều này sẽ dễ dàng nhưng đáng ngạc nhiên là tôi không thể làm cho nó hoạt động. Xin lưu ý rằng tôi muốn thay đổi trên toàn bộ ứng dụng, không chỉ cho một hoạt động đơn lẻ. Đây là mã của tôi:

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>

và tất nhiên trong tệp kê khai

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

Tài liệu Android mà tôi đã tham khảo về cách sửa đổi chủ đề: http://developer.android.com/guide/topics/ui/themes.html

Tôi đã thử chuyển đổi giữa white_opaque và pitch_black cho tất cả các thuộc tính xml nhưng nó không thay đổi được gì. Bất kỳ đề xuất?


1
Thử xóa kênh alpha
Blundell

Được rồi, tôi vừa làm, vẫn vậy.
Stark

1
Đây là giải pháp tốt nhất mà tôi đã đọc stackoverflow.com/a/33213433/963543
Ata Iravani

Câu trả lời:


58

Được rồi, hóa ra tôi đã mắc một sai lầm thực sự ngớ ngẩn. Thiết bị tôi đang sử dụng để thử nghiệm đang chạy Android 4.0.4, API cấp 15.

Tệp styles.xml mà tôi đang chỉnh sửa nằm trong thư mục giá trị mặc định. Tôi đã chỉnh sửa styles.xml trong thư mục giá trị-v14 và hiện tại nó hoạt động tốt.


4
Hoặc bạn chỉ có thể xóa các thư mục kiểu khác nếu bạn không sử dụng chúng. Tôi đã gặp vấn đề tương tự và đã khắc phục nó bằng một styles.xml, trong thư mục 'giá trị'. Vấn đề của tôi là tôi có một mục chủ đề cho Hoạt động trong tệp kê khai (tất nhiên là mục này sẽ ghi đè 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

Mở res -> values -> styles.xml<style>thêm dòng này thay thế bằng đường dẫn hình ảnh của bạn <item name="android:windowBackground">@drawable/background</item>. Thí dụ:

<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>

Ngoài ra <item name ="android:colorBackground">@color/black</item>, điều này sẽ ảnh hưởng không chỉ đến nền cửa sổ chính của bạn mà còn ảnh hưởng đến tất cả các thành phần trong ứng dụng của bạn. Đọc về chủ đề tùy chỉnh tại đây .

Nếu bạn muốn các kiểu phiên bản cụ thể :

Nếu phiên bản Android mới thêm các thuộc tính chủ đề mà bạn muốn sử dụng, bạn có thể thêm chúng vào chủ đề của mình trong khi vẫn tương thích với các phiên bản cũ. Tất cả những gì bạn cần là một tệp styles.xml khác được lưu trong thư mục giá trị bao gồm bộ định tính phiên bản tài nguyên. Ví dụ:

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

Vì các kiểu trong tệp giá trị / styles.xml có sẵn cho tất cả các phiên bản, nên các chủ đề của bạn trong giá trị-v21 / styles.xml có thể kế thừa chúng. Do đó, bạn có thể tránh trùng lặp các kiểu bằng cách bắt đầu với một chủ đề "cơ sở" và sau đó mở rộng nó trong các kiểu dành riêng cho phiên bản của bạn.

Đọc thêm ở đây (doc trong chủ đề) .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.