• Android开发之精仿QQ设置界面(自定义PreferenceActivity)


    今天,再给大家分享一下QQ设置界面的UI布局实现,不罗嗦,直接上图

    设置主界面
    <ignore_js_op>device1.png



    皮肤设置界面
    <ignore_js_op>device2.png



    流量统计界面
    <ignore_js_op>device3.png



    好友设置界面(其实这个不在设置界面里,工程里有该ACTIVITY,就在最后加上了)
    <ignore_js_op>device4.png




    在开发应用程序的过程中我们有很大的机会需要用到参数设置功能
    那么在Android应用中,我们如何实现参数设置界面及参数存储呢
    答案是使用PreferenceActivity,相信大家并不陌生
    只不过系统自带的样式黑布隆冬的,看起来很不美观,难登大雅之堂
    只要我们稍加修饰,便可扭转乾坤,化别扭为和谐


    主要是在MainFeast配置文件里给ACTIVITY加上自定义的样式 
            <activity android:name=".SettingActivity"
                      android:label="设置与帮助"
                      android:theme="@style/Default"
                      android:configChanges="keyboardHidden|orientation" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>

    且看 Style.xml配置文件

    <?xml version="1.0" encoding="utf-8"?>
    <resources>

            <style name="CustomWindowTitleBackground">
            <item name="android:background">@drawable/skinpic_green</item>
        </style>
        
         <style name="CustomWindowTitleText" >  
              <item name="android:textSize">20dip</item>  
              <item name="android:textColor">#FFffffff</item>  
              <item name="android:paddingLeft">10dp</item>
         </style> 
        
        
        <style name="customCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">
            <item name="android:button">@drawable/selector_checkbox</item>
        </style>
        
        
        <style name="customListView" parent="@android:style/Widget.ListView">
            <item name="android:scrollbarSize">10.0dip</item>
            <item name="android:scrollbarThumbVertical">@drawable/scrollbar_handle_vertical</item>
            <item name="android:listSelector">@drawable/selector_list</item>
            <item name="android:cacheColorHint">#00000000</item>
        </style>
       

        
        <style name="Default.NoTitleBar" parent="@android:style/Theme.Light.NoTitleBar">
                    <item name="android:textColorPrimaryInverse">@android:color/black</item>           
            <item name="android:windowBackground">@color/window_bg</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:windowTitleSize">42.0dip</item>
            <item name="android:windowTitleStyle">@style/CustomWindowTitleText</item> 
            <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
            <item name="android:checkboxStyle">@style/customCheckBox</item>
            <item name="android:listViewStyle">@style/customListView</item>
            
        </style>
        
        
        <style name="Default" parent="@style/Default.NoTitleBar">
            <item name="android:windowNoTitle">false</item>
        </style>
        
        
    </resources>

    本例只用到了CheckBox和ListView,如果大家的设置界面有用到其它控件
    如editText,radioButton之类的,只需依葫芦画瓢,加上editTextStyle,radioButtonStyle即可
    如需自定义Preference布局,则需派生一个Preference子类,并配置相关XML布局文件
    详情请见:http://blog.csdn.net/aomandeshangxiao/article/details/6659346
    在此就不多言了

    像好友资料这样的UI布局还是很常见的,很多人可能不知道怎么实现
    主要是采用了线形布局,一个白框是个linearlayout,白框内一行行的同样是linearlayout
    分割线则是采用了shape的配置布局
    类似

    <?xml version="1.0" encoding="UTF-8"?>
    <shape android:shape="rectangle"
      xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#ffe0e0e0" />
    </shape>

    当然类似布局的实现未必都是如此,这里只是给大家提供一个思路
    好了其它的也不多说了,自己下工程看吧。

     QQUIDemo.rar

    来源:eoeAndroid开发者社区。

  • 相关阅读:
    P3180 [HAOI2016]地图
    P2787 语文1(chin1)- 理理思维
    P2221 [HAOI2012]高速公路
    P4137 Rmq Problem / mex
    P3746 [六省联考2017]组合数问题
    P2461 [SDOI2008]递归数列
    P3715 [BJOI2017]魔法咒语
    P3195 [HNOI2008]玩具装箱TOY
    Linux下的strerror是否线程安全?
    bash/shell的字符串trim实现
  • 原文地址:https://www.cnblogs.com/loonggg/p/2882765.html
Copyright © 2020-2023  润新知