android Setting PreferenceScreen 修改背景
引用:http://blog.sina.com.cn/s/blog_7eeffcc701010f68.html
example:
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.seedshope.android">
<PreferenceScreen
android:key="wifi_settings"
android:title="@string/wifi_settings"
android:summary="@string/wifi_settings_summary" >
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.wifi.WifiSettings" />
</PreferenceScreen>
</PreferenceScreen>
如果是个PreferenceGroup 可以通过Intent 链接到新建activity extends PreferenceActivity 在onCreate中
addPreferencesFromResource(R.xml.preference);
setContentView(R.layout.pre_test);
setContentView(R.layout.pre_test);
--------------------------------------------------------
android实现为PreferenceScreen设置背景图片等
需要使用PreferenceScreen,类似系统中的设置功能,但是需要设置自定义背景,修改PreferenceScreen中的文本的字体颜色等;可以以下做法:
1:在values目录下新建styles.xml(目录下无styles.xml),内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="perference_set_activity">
<item name="android:windowBackground">@drawable/bg01</item> <!-- 窗口背景 -->
<item name="android:focusable">false</item>
<item name="android:textColor">#ff000000</item> <!-- 字体颜色 -->
<item name="android:colorBackgroundCacheHint">#00000000</item> <!-- 背景缓存色透明,避免拖动全黑 -->
<item name="android:windowNoTitle">false</item> <!-- 是否有标题 -->
</style>
</resources>
2:在manifest.xml中的相应activity中配置,如:
<activity android:name=".MainActivity" android:theme="@style/sys_set_activity"/>
也可以在onCreate(...)中setTheme(R.style.perference_set_activity),但是此方法必须放在super.onCreate(icicle)之前,否则会出现如背景丢失等错误。
用法就是如此简单,关键在设置 <item name="android:colorBackgroundCacheHint">#00000000</item> <!-- 背景缓存色透明,避免拖动全黑 -->
需要使用PreferenceScreen,类似系统中的设置功能,但是需要设置自定义背景,修改PreferenceScreen中的文本的字体颜色等;可以以下做法:
1:在values目录下新建styles.xml(目录下无styles.xml),内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="perference_set_activity">
<item name="android:windowBackground">@drawable/bg01</item> <!-- 窗口背景 -->
<item name="android:focusable">false</item>
<item name="android:textColor">#ff000000</item> <!-- 字体颜色 -->
<item name="android:colorBackgroundCacheHint">#00000000</item> <!-- 背景缓存色透明,避免拖动全黑 -->
<item name="android:windowNoTitle">false</item> <!-- 是否有标题 -->
</style>
</resources>
2:在manifest.xml中的相应activity中配置,如:
<activity android:name=".MainActivity" android:theme="@style/sys_set_activity"/>
也可以在onCreate(...)中setTheme(R.style.perference_set_activity),但是此方法必须放在super.onCreate(icicle)之前,否则会出现如背景丢失等错误。
用法就是如此简单,关键在设置 <item name="android:colorBackgroundCacheHint">#00000000</item> <!-- 背景缓存色透明,避免拖动全黑 -->
-------------------------------------------------------
1、在value文件夹下新建一个systemset.xml文件,sytemset.xml内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="sys_set_preacitivity">
<item name="android:windowBackground">@drawable/background</item>
<item name="android:focusable">false</item>
<item name="android:textColor">#ff000000</item>
<item name="android:cacheColorHint">#ffffffff</item>
<item name="android:windowNoTitle">false</item> <!-- 用来设定是否显示标题 -->
</style>
</resources>
2、在AndroidManifest.xml调用
<activity android:name="SystemSetAcitivity" android:theme="@style/sys_set_preacitivity"></activity>
4、新建一个xml文件,在xml下新建一个system_set.xml,内容是
<?xml version="1.0" encoding="utf-8"?>
<preferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/systemTitle" android:layout="@layout/system_set">
<preferenceCategory android:title="@string/soundTitle">
<CheckBoxPreference android:title="@string/muteTitle"
android:summary="@string/muteSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/shockTitle"
android:summary="@string/shockSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/soundTitle"
android:summary="@string/soundSum"></CheckBoxPreference>
</PreferenceCategory>
<preferenceCategory android:title="@string/soundTitle">
<CheckBoxPreference android:title="@string/muteTitle"
android:summary="@string/muteSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/shockTitle"
android:summary="@string/shockSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/soundTitle"
android:summary="@string/soundSum"></CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
4、在src下新建一个java文件
package com.android.perference.acitivity;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
public class SystemSetAcitivity extends PreferenceActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.system_set);
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference)
{
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
}
5、运行程序出现拖动黑屏,一直困扰着我,不知道怎么解决,谁有好的办法
<ignore_js_op>
拖动某一选项结果:
<ignore_js_op>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="sys_set_preacitivity">
<item name="android:windowBackground">@drawable/background</item>
<item name="android:focusable">false</item>
<item name="android:textColor">#ff000000</item>
<item name="android:cacheColorHint">#ffffffff</item>
<item name="android:windowNoTitle">false</item> <!-- 用来设定是否显示标题 -->
</style>
</resources>
2、在AndroidManifest.xml调用
<activity android:name="SystemSetAcitivity" android:theme="@style/sys_set_preacitivity"></activity>
4、新建一个xml文件,在xml下新建一个system_set.xml,内容是
<?xml version="1.0" encoding="utf-8"?>
<preferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/systemTitle" android:layout="@layout/system_set">
<preferenceCategory android:title="@string/soundTitle">
<CheckBoxPreference android:title="@string/muteTitle"
android:summary="@string/muteSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/shockTitle"
android:summary="@string/shockSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/soundTitle"
android:summary="@string/soundSum"></CheckBoxPreference>
</PreferenceCategory>
<preferenceCategory android:title="@string/soundTitle">
<CheckBoxPreference android:title="@string/muteTitle"
android:summary="@string/muteSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/shockTitle"
android:summary="@string/shockSum"></CheckBoxPreference>
<CheckBoxPreference android:title="@string/soundTitle"
android:summary="@string/soundSum"></CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
4、在src下新建一个java文件
package com.android.perference.acitivity;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
public class SystemSetAcitivity extends PreferenceActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.system_set);
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference)
{
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
}
5、运行程序出现拖动黑屏,一直困扰着我,不知道怎么解决,谁有好的办法
<ignore_js_op>
拖动某一选项结果:
<ignore_js_op>