手机QQ UI界面分析
一、设置界面。
采用PerferenceActivity 与Perference完美配置在一起。
类似android自身的设置界面也是采用此种方式。
配置Activity,指定了一个主题
<!-- 配置这个属性表示切换横竖屏的时候,不会调用oncreate()方法而是调用onConfigchanges -->
<activity android:name=".SettingActivity"
android:label="设置与帮助"
android:theme="@style/Default"
android:configChanges="keyboardHidden|orientation" >顶部是使用自定义WindowTitle,也可以先获得第一个ScreenPrefernces,然后自行添加的headView
//Light改变了 "消息通知"这一栏的明亮程度
<style name="Default.NoTitleBar" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:textColorPrimaryInverse">@color/traffic_txt</item>
<item name="android:windowBackground">@color/window_bg</item>
<item name="android:windowContentOverlay">@null</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>设置的配置文件。
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="消息通知">
<CheckBoxPreference android:title="开启声音" android:key="开启声音" android:summary="当有新消息通知时播放声音提示" android:summaryOn="选中了我" android:summaryOff="没选中我" android:defaultValue="false"/>
<CheckBoxPreference android:title="开启震动" android:key="开启震动" android:summary="当有新消息通知时震动提示" android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory android:title="图片接收">
<CheckBoxPreference android:title="自动接收图片" android:key="自动接收图片" android:summary="GPRS,3G网络下自动接收并显示图片" android:defaultValue="false" >
</CheckBoxPreference>
</PreferenceCategory>
<PreferenceCategory android:title="显示" >
<CheckBoxPreference android:title="开启横屏模式" android:key="开启横屏模式" android:defaultValue="true" />
<CheckBoxPreference android:title="显示系统栏挂机图标" android:key="显示系统栏挂机图标" android:summary="后台运行时,在系统栏显示程序图标" android:defaultValue="true" />
<PreferenceScreen android:title="更换皮肤">
<intent android:targetPackage="com.genius.demo" android:targetClass="com.genius.demo.SkinActivity" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="辅助功能">
<CheckBoxPreference android:title="开启截屏功能" android:key="开启截屏功能" android:summary="摇晃手机即可截图(在QQ外截图需root权限)" android:defaultValue="false" />
<CheckBoxPreference android:title="上报我的地理位置" android:key="上报我的地理位置" android:summary="上报地理位置信息以便附近的人能够找到我" android:defaultValue="false" />
<PreferenceScreen android:title="查看流量统计" android:summary="使用手机QQ所产生的上行和下行流量">
<intent android:targetPackage="com.genius.demo" android:targetClass="com.genius.demo.TrafficStatActivity" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="帮助">
<PreferenceScreen android:title="反馈建议" android:summary="反馈建议">
<intent android:action="android.intent.action.VIEW" android:data="http://wap.3g.qq.com/g/s?aid=wapsupport&amp;fid=647" />
</PreferenceScreen>
<PreferenceScreen android:title="好友设置" android:summary="好友设置">
<intent android:targetPackage="com.genius.demo" android:targetClass="com.genius.demo.FriendInfoActivity" />
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
二、查看流量统计

页面布局
中间的 采用include的形式进去的。里面采用的布局是一个tableLayout。注意到中间的矩形周边有圆角没。那是采用shape作为背景的。
table布局文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- shape_bg作为背景配置 -->
<TableLayout
android:background="@drawable/shape_bg"
android:paddingLeft="6.0dip"
android:paddingTop="5.0dip"
android:paddingRight="6.0dip"
android:paddingBottom="5.0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8.0dip"
android:layout_marginTop="0.0dip"
android:layout_marginRight="8.0dip"
android:layout_marginBottom="9.0dip"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="发送" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="接收" android:layout_weight="1.0" />
</TableRow>
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="基础聊天" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:id="@+id/base_send_trafic" android:text="34 KB" android:layout_height="wrap_content" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:id="@+id/base_recv_trafic" android:text="15 KB" android:layout_height="wrap_content" android:layout_weight="1.0" />
</TableRow>
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="图片" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
</TableRow>
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="语音" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
</TableRow>
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="视频" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0 bytes" android:layout_weight="1.0" />
</TableRow>
<TableRow>
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_txt" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="小计" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:text="34 KB" android:id="@+id/total_send_trafic" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
<TextView android:textSize="14.0sp" android:textColor="@color/traffic_data" android:text="15 KB" android:id="@+id/total_recv_trafic" android:padding="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
</TableRow>
</TableLayout>shape_bg.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white" />
<!--边框的粗细与颜色-->
<stroke android:width="1.0dip" android:color="#ffe0e0e0" />
<corners android:radius="4.0dip" />
</shape>
三、好友资料界面
使用多个LinerLayout来控制。。每个LinerLayout设置一个边界距离。

相关推荐
xfcyhades 2020-11-20
Michael 2020-11-03
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28