改变偏好的背景颜色
我有一个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
如果你只想改变你的背景