J'ai un PreferenceCategory
, un fichier xml et j'y ai défini toutes les préférences, je l'appelle depuis la classe qui étend PreferenceActivity
. Je n'arrive pas à définir l'arrière-plan de mon écran de paramètres, cet écran s'affiche avec l'aide du fichier xml illustré ci-dessous. Veuillez voir que j'ai déjà défini le Android:background="#041A37"
, l'écran reste la couleur par défaut: 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'aie défini Android:background="#041A37"
dans chaque fichier, l'arrière-plan ne se transforme pas en bleu marine ou en toute autre couleur d'ailleurs. Il reste la couleur par défaut, le noir. Comment changer la couleur d'arrière-plan. Veuillez me faire part de tous les pointeurs/conseils, si vous avez rencontré le même problème, faites-moi savoir quelles modifications vous avez apportées pour définir la couleur d'arrière-plan.
Cela a fonctionné pour moi
getListView().setBackgroundColor(Color.TRANSPARENT);
getListView().setCacheColorHint(Color.TRANSPARENT);
getListView().setBackgroundColor(Color.rgb(4, 26, 55));
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 de fond de fenêtre 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 ci-dessus, une couleur d'arrière-plan et une image d'arrière-plan sont définies pour montrer comment procéder.
En ce qui concerne la couleur, vous pouvez également créer un thème pour l'activité des préférences et mettre également 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>
Android:background
n'est pas un attribut disponible, selon le documentation .
Il est possible que vous puissiez thèmeer le PreferenceActivity
pour réaliser votre changement de couleur, mais je n'ai pas essayé cela, car je veux que mes préférences ressemblent à celles du reste d'Android, pour améliorer la convivialité de l'application.
Ou vous pouvez également rendre Drawable comme arrière-plan:
getListView ().
setBackgroundDrawable(getResources (). getDrawable (R.drawable.bluegradient));
Remarque:setBackgroundDrawable()
est obsolète. Utilisez à la place setBackground()
.
getListView (). setBackground (getResources (). getDrawable (R.drawable.bluegradient));
Veuillez spécifier une disposition linéaire avec une vue de texte attachée et spécifier la couleur d'arrière-plan et attacher ce xml à la catégorie de préférence en utilisant la propriété de disposition.
<PreferenceCategory
Android:layout="@layout/preftitle"
>
Où preftitle est un xml qui a une disposition linéaire et une vue texte attachée.
Aller à res>values>styles.xml>
et ajoutez ce code à votre <style > </style>
le style doit être le thème de base de l'application dans ce @color/activ
est des ressources de couleur ajoutées aux couleurs.
<style name="app_theme" parent="@Android:style/Theme">
<item name="Android:windowBackground">@color/activ</item>
<item name="Android:windowContentOverlay">@drawable/title_bar_shadow</item>
<item name="Android:listViewStyle">@style/TransparentListView</item>
</style>
si tu utilises app_theme
nom de la balise de style, puis ajoutez comme ceci à votre manifeste
<application
Android:name=".XXXXXX"
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/app_theme" > //here
Si vous voulez seulement changer votre fond