改变偏好的背景颜色

我有一个PreferenceCategory ,XML文件,我已经定义了所有的喜好,我从类扩展PreferenceActivity调用这个。 我无法设置我的设置屏幕的背景,这个屏幕显示在下面显示的XML文件的帮助。 请参阅我已经定义了android:background="#041A37" ,屏幕依然保持默认的颜色:黑色。

 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是

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

虽然我在每个文件中都设置了android:background="#041A37" ,但背景并没有变成藏青色或任何其他颜色。 它仍然是默认的颜色,黑色。 如何更改背景颜色。 请让我知道任何指针/提示,如果你遇到同样的问题,让我知道你设置背景颜色做了什么改变。

您可以定义一个主题,然后在清单中为您的PreferenceActivity设置此主题。 然后,你的主题可以定义一个背景颜色或一个windowBackground图像,如果你喜欢的话。

performance:

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

然后将主题添加到您的styles.xml

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

在上面的代码片段中,定义了背景颜色和背景图片来显示如何操作。

这对我有效

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

就颜色而言,另一个解决方法是为首选项活动创build一个主题,并放置列表视图的背景颜色:

 <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不是一个可用的属性。

虽然我还没有尝试过这一点,但您可以将PreferenceActivity作为主题来实现您的颜色更改,因为我希望我的偏好看起来像Android的其他部分,以提高应用的可用性。

或者你也可以绘制为你的背景:

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

注意: setBackgroundDrawable()已被弃用。 使用setBackground()来代替。

。getListView()的setBackground(getResources()getDrawable(R.drawable.bluegradient)。);

请指定一个带有textview的线性布局,并指定背景颜色,并使用layout属性将此xml附加到preferencecategory。

 <PreferenceCategory android:layout="@layout/preftitle" > 

preftitle是一个xml,它具有线性布局和文本视图。

转到res>values>styles.xml>并将此代码添加到您的<style > </style>样式应该是应用程序基本主题在此@color/activ是将颜色资源添加到颜色。

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

如果你使用风格标签的app_theme名称,那么像这样添加到你的清单

 <application android:name=".XXXXXX" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/app_theme" > //here 

如果你只想改变你的背景