Android开发之精仿QQ设置界面(自定义PreferenceActivity)
今天,再给大家分享一下QQ设置界面的UI布局实现,不罗嗦,直接上图
设置主界面
<ignore_js_op>
皮肤设置界面
<ignore_js_op>
流量统计界面
<ignore_js_op>
好友设置界面(其实这个不在设置界面里,工程里有该ACTIVITY,就在最后加上了)
<ignore_js_op>
在开发应用程序的过程中我们有很大的机会需要用到参数设置功能
那么在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>
当然类似布局的实现未必都是如此,这里只是给大家提供一个思路
好了其它的也不多说了,自己下工程看吧。
来源:eoeAndroid开发者社区。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库