zoukankan      html  css  js  c++  java
  • 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);
     
    --------------------------------------------------------
    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内容
    <?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>11.png 
    拖动某一选项结果:
    <ignore_js_op>2222.png
  • 相关阅读:
    C#全角半角转换输出解决方法
    screen命令
    Parrot Linux国内源
    screen命令在freebsd安装和使用
    sysbench0.5 在 centos7下安装 (mysql-community-server)
    Mysql中文乱码问题完美解决方案
    PHP返回数据被nginx截断问题的解决方法
    yii2笔记:asset压缩js,css文件
    Yii2笔记:activerecord和activecontroller
    yii2笔记: 模块(module)
  • 原文地址:https://www.cnblogs.com/sode/p/2879776.html
Copyright © 2011-2022 走看看