天天看點

android Setting PreferenceScreen 修改背景

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

--------------------------------------------------------

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> <!-- 背景緩存色透明,避免拖動全黑 -->

-------------------------------------------------------

1、在value檔案夾下建立一個systemset.xml檔案,sytemset.xml内容

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

2、在AndroidManifest.xml調用

<activity android:name="SystemSetAcitivity" android:theme="@style/sys_set_preacitivity"></activity>

4、建立一個xml檔案,在xml下建立一個system_set.xml,内容是

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

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

        }

        public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,

                        Preference preference)

                return super.onPreferenceTreeClick(preferenceScreen, preference);

}

5、運作程式出現拖動黑屏,一直困擾着我,不知道怎麼解決,誰有好的辦法

<ignore_js_op>

android Setting PreferenceScreen 修改背景

拖動某一選項結果:

android Setting PreferenceScreen 修改背景

繼續閱讀