55 votes

changer la couleur de fond de préférence

J'ai un PreferenceCategory, fichier xml et j'ai défini l'ensemble des préférences, j'appel cela de la classe qui s'étend au - PreferenceActivity. Je suis incapable de définir l'arrière-plan de mes paramètres de l'écran, cet écran est affiché avec l'aide du fichier xml indiqué ci-dessous. Veuillez voir que j'ai déjà défini l' android:background="#041A37", toujours l'écran reste par défaut couleur: noir.

public class MyPreferenceActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Context mContext=super.getBaseContext();
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.preference);
        //v.setBackgroundColor(Color.rgb(4, 26, 55));
    }
}

preference.xml est

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#041A37" >

    <PreferenceCategory>
        <com.dropcall.SeekBarPreference
            android:background="#041A37"
            android:defaultValue="5"
            android:key="@string/Interference_Delay"
            android:progressDrawable="@drawable/seekbardrawable"
            android:title="Seconds Delay until intereference" />

        <com.dropcall.SeekBarPreference2
            android:defaultValue="30"
            android:key="@string/Drop_Delay"
            android:progressDrawable="@drawable/seekbardrawable"
            android:title="Seconds delay until drop" />

        <CheckBoxPreference
            android:background="@drawable/state_normal"
            android:defaultValue="true"
            android:key="@string/Drop_Option"
            android:title="Close after call drop" />
        <CheckBoxPreference
            android:background="@drawable/state_normal"
            android:defaultValue="true"
            android:key="@string/Timer_Option"
            android:title="Start timers on launch" />
    </PreferenceCategory>

</PreferenceScreen>

Bien que j'ai mis en android:background="#041A37" dans chaque fichier, le fond ne se transforme pas en bleu marine, ou de toute autre couleur d'ailleurs. Il reste par défaut la couleur, le noir. Comment changer la couleur d'arrière-plan. S'il vous plaît laissez-moi savoir les pointeurs / conseils , si vous avez eu face d'une même question, laissez-moi savoir ce que les changements que vous faites pour définir la couleur d'arrière-plan.

80voto

AndreasW Points 672

Vous pouvez définir un thème, puis le définir pour votre PreferenceActivity dans le manifeste. Votre thème peut alors définir une couleur d’arrière-plan ou une image windowBackground si vous préférez.

Manifeste:

     <activity android:label="@string/app_label" android:name=".client.PreferencesActivity"
        android:theme="@style/PreferencesTheme">
        <intent-filter>                                
        </intent-filter>
    </activity>
 

Ajoutez ensuite le thème à votre styles.xml

 <style name="PreferencesTheme">
    <item name="android:windowBackground">@drawable/background_image</item>
    <item name="android:background">#FFEAEAEA</item>
</style>
 

Dans l'extrait de code ci-dessus, une couleur d'arrière-plan et une image d'arrière-plan sont définies pour montrer comment procéder.

46voto

David Prun Points 1624

Cela a fonctionné pour moi

 getListView().setBackgroundColor(Color.TRANSPARENT);

getListView().setCacheColorHint(Color.TRANSPARENT);

getListView().setBackgroundColor(Color.rgb(4, 26, 55));
 

21voto

Mobistry Points 2902

Une autre solution en ce qui concerne la couleur consiste à créer un thème pour l'activité de préférences et à définir la couleur d'arrière-plan des vues de liste:

 <style name="PrefsTheme" parent="@android:style/Theme.Black.NoTitleBar">
    <item name="android:windowBackground">@color/prefs_bg</item>
    <item name="android:textColor">@color/text_color</item>
    <item name="android:listViewStyle">@style/listViewPrefs</item>
</style>

<style name="listViewPrefs" parent="@android:style/Widget.ListView">
    <item name="android:background">@color/prefs_bg</item>
    <item name="android:cacheColorHint">@color/prefs_bg</item>
</style>
 

6voto

CommonsWare Points 402670

android:background n'est pas un attribut disponible, selon la documentation .

Il est possible que vous utilisiez les thèmes PreferenceActivity pour réaliser votre changement de couleur, bien que je ne l'aie pas encore essayé, car je souhaite que mes préférences ressemblent à celles du reste d'Android afin d'améliorer la convivialité de l'application.

5voto

Rootko Points 21

Ou vous pouvez également rendre drawable comme fond d'écran:

 getListView().setBackgroundDrawable(getResources().getDrawable(R.drawable.bluegradient));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X