Menyetel warna latar Tema Android

105

Saya mencoba mengubah warna tema latar belakang default, yang seharusnya mudah tetapi yang mengejutkan saya tidak bisa membuatnya berfungsi. Harap perhatikan bahwa saya ingin perubahan terjadi di seluruh aplikasi, tidak hanya untuk satu aktivitas. Ini kode saya:

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>

dan tentu saja di manifes

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

Dokumen Android yang saya konsultasikan tentang memodifikasi tema: http://developer.android.com/guide/topics/ui/themes.html

Saya sudah mencoba beralih antara white_opaque dan pitch_black untuk semua atribut xml tetapi tidak mengubah apa pun. Ada saran?

Telanjang
sumber
1
Coba hapus saluran alfa
Blundell
Baiklah saya baru saja melakukannya, meskipun masih sama.
Stark
1
Ini adalah solusi terbaik yang pernah saya baca stackoverflow.com/a/33213433/963543
Ata Iravani

Jawaban:

58

Oke ternyata saya melakukan kesalahan yang sangat konyol. Perangkat yang saya gunakan untuk pengujian menjalankan Android 4.0.4, API level 15.

File styles.xml yang saya edit ada di folder nilai default. Saya mengedit styles.xml di folder values-v14 dan semuanya berfungsi dengan baik sekarang.

Telanjang
sumber
4
Atau Anda bisa menghapus folder gaya lain jika Anda tidak menggunakannya. Saya memiliki masalah yang sama dan memperbaikinya dengan satu styles.xml, di folder 'values'. Masalah saya adalah bahwa saya memiliki item tema untuk Aktivitas di file manifes (yang tentu saja menggantikan 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>
Oded Breiner
sumber
5

Buka res -> values -> styles.xmldan untuk <style>menambahkan baris ini dengan jalur gambar Anda <item name="android:windowBackground">@drawable/background</item>. Contoh:

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

Ada <item name ="android:colorBackground">@color/black</item>juga, yang akan mempengaruhi tidak hanya latar belakang jendela utama Anda tetapi semua komponen dalam aplikasi Anda. Baca tentang menyesuaikan tema di sini .

Jika Anda menginginkan gaya khusus versi :

Jika Android versi baru menambahkan atribut tema yang ingin Anda gunakan, Anda dapat menambahkannya ke tema Anda sambil tetap kompatibel dengan versi lama. Yang Anda butuhkan hanyalah file styles.xml lain yang disimpan dalam direktori nilai yang menyertakan qualifier versi sumber daya. Sebagai contoh:

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

Karena gaya dalam file values ​​/ styles.xml tersedia untuk semua versi, tema Anda di values-v21 / styles.xml bisa mewarisinya. Dengan demikian, Anda dapat menghindari duplikasi gaya dengan memulai dengan tema "dasar" dan kemudian memperluasnya dalam gaya khusus versi Anda.

Baca lebih lanjut di sini (dokumen dalam tema) .

Blasanka
sumber