实现效果:

整理思路:

1、控件:文字TextView 和 右箭头ImageView

2、因为考虑到点击效果,设计为:最外层为全圆角,内层有四种情况,分别为上圆角、无圆角、下圆角和全圆角。

3、内层样式效果:需要初始样式、和点击样式

4、需要知识:结合style、shake、selector组合样式

布局:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#F0F3F6"
> <LinearLayout style="@style/wrap_layout" >
<!-- 上圆角-->
<LinearLayout style="@style/top_layout">
<TextView style="@style/usertext" android:text="个性签名" />
<ImageView style="@style/img_arrow"/>
</LinearLayout> <!-- 分割线 -->
<View style="@style/bg_line"/>
<!-- 无圆角-->
<LinearLayout style="@style/mid_layout">
<TextView style="@style/usertext" android:text="我的资料" />
<ImageView style="@style/img_arrow"/>
</LinearLayout>
<View style="@style/bg_line"/>
<!-- 下圆角-->
<LinearLayout style="@style/bottom_layout">
<TextView style="@style/usertext" android:text="消息通知" />
<ImageView style="@style/img_arrow"/>
</LinearLayout> </LinearLayout> <!-- 全圆角-->
<LinearLayout style="@style/wrap_layout">
<LinearLayout style="@style/single_layout">
<TextView style="@style/usertext" android:text="辅助功能"/>
<ImageView style="@style/img_arrow"/>
</LinearLayout> </LinearLayout> </LinearLayout>

布局文件

样式:

     <!-- 最外层样式 -->
<style name="wrap_layout">
<item name="android:orientation">vertical</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_marginLeft">8dp</item>
<item name="android:layout_marginRight">8dp</item>
<item name="android:layout_marginTop">8dp</item>
<item name="android:padding">1px</item>
<item name="android:background">@drawable/bg_layout_shape</item> </style> <!-- 共用层样式 -->
<style name="base_layout">
<item name="android:orientation">horizontal</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingTop">16dp</item>
<item name="android:paddingBottom">16dp</item>
<item name="android:paddingLeft">12dp</item>
<item name="android:paddingRight">12dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>

layout样式

 <!-- textview样式 -->
<style name="usertext">
<item name="android:textSize">16dp</item>
<item name="android:textColor">@color/text_clo</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
</style> <!-- 文本右边箭头样式 -->
<style name="img_arrow">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:src">@drawable/setting_arrow</item> </style> <!-- view分割线样式 -->
<style name="bg_line">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1px</item>
<item name="android:background">@color/border_clo</item>
</style>

控件样式

  <!-- 上圆角样式 -->
<style name="top_layout" parent="base_layout">
<item name="android:background">@drawable/top_layout_selector</item>
</style> <!--无圆角样式 -->
<style name="mid_layout" parent="base_layout">
<item name="android:background">@drawable/mid_layout_selector</item>
</style> <!-- 下圆角样式 -->
<style name="bottom_layout" parent="base_layout">
<item name="android:background">@drawable/bottom_layout_selector</item>
</style> <!-- 全圆角样式 -->
<style name="single_layout" parent="base_layout">
<item name="android:background">@drawable/single_layout_selector</item>
</style>

点击样式和默认样式

其中举例上圆角的背景设置为:

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/top_select"></item>
<item android:state_focused="true" android:drawable="@drawable/top_select"></item>
<item android:drawable="@drawable/top_unselect"></item>
</selector>

top_layout_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/blue"/>
<corners android:topRightRadius="8dp" android:topLeftRadius="8dp"/>
</shape>

top_select.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/white"/>
<corners android:topRightRadius="8dp" android:topLeftRadius="8dp"/>
</shape>

top_unselect.xml

练习工程下载>>

Android:布局实例之常见用户设置界面的更多相关文章

  1. [转]Android:布局实例之模仿QQ登录界面

    Android:布局实例之模仿QQ登录界面 预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布 ...

  2. Android:布局实例之模仿QQ登录界面

    预览图: 准备: 1.找到模仿对象 QQ登陆界面UI下载>>>>> 2.导入工程 3.查看布局结构和使用控件 其对应效果图分布为 4.分析样式选择器 下拉箭头2种样式:点 ...

  3. Android:布局实例之模仿京东登录界面

    预览图及布局结构参考: 布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout ...

  4. ZT Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    Android布局]在程序中设置android:gravity 和 android:layout_Gravity属性 分类: [Android基础] 2011-04-19 16:06 54739人阅读 ...

  5. Android调用系统自带的设置界面

    Android有很多系统自带的设置界面,如设置声音,设置网络等. 在开发中可以调用这些系统自带的设置界面. 点击以下列表中的选项,就可以调出相应的系统自带的设置界面. 如点击“无线和网络设置”,可以调 ...

  6. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能常常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...

  7. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性——位置设置偏向

    LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中内 ...

  8. android 跳转到应用通知设置界面的示例

    4.4以下并没有提过从app跳转到应用通知设置页面的Action,可考虑跳转到应用详情页面,下面是直接跳转到应用通知设置的代码: if (android.os.Build.VERSION.SDK_IN ...

  9. Android笔记——PreferenceActivity结合PreferenceFragment创建设置界面

    1.创建类继承PreferenceActivity 2.该类必须重写OnBuildHeaders和isValidFragment方法.         (1)OnBuildHeaders方法中使用lo ...

随机推荐

  1. 关于arcgis发布wfs问题

    博客地址http://www.cnblogs.com/shizhongtao/p/3453594.html 官方文档中有这么一段描述: 从地图创建 WFS 服务 您 可以从 ArcMap 地图文档 ( ...

  2. (POJ 2318)TOYS 向量叉积

    题目链接:http://poj.org/problem?id=2318 #include<stdio.h> #include<cstdlib> #include<cstr ...

  3. 《JSON必知必会》

    每天上下班在地铁上很适合看这种书,入门级.难点不多.简约不失严谨. 自从全面转向ASP.NET MVC,现在基本上每天都和JSON打交道,效率.习惯.速度都要掌握. 这本书读起来很快,所以读完也蛮有成 ...

  4. Bugzilla 使用指南

    Bugzilla安装见前一篇博客,本篇文章主要关注于如何高效合理的使用Bugzilla,作为为公司内部人员的培训使用指南. Bugzilla是一个开源的缺陷跟踪系统,它可以管理软件开发过程中缺陷的提交 ...

  5. lex&yacc8--wehter use in C++

    bintree.h:12:1: error: unknown type name ‘using’ using namespace std; ============== bintree.h:28:1: ...

  6. Guzz

    http://www.cnblogs.com/shitou/archive/2011/05/31/2064838.html

  7. 带搜索的下拉框Chosen

    一:参考 https://harvesthq.github.io/chosen/ Chosen是一个jQuery插件 二:引入js文件 <link href="plug-in/chos ...

  8. Repeater和Gridview前台显示行号的方法

    Repeater : Container.ItemIndex (行号从零开始,如果想改为从1开始,那么可以将以上的代码改为Container.ItemIndex + 1),见下示例: <asp: ...

  9. HTML5如何重塑O2O用户体验

    低频次垂直O2O服务应该继续开发原生APP吗?大家有没有发现做一个APP的推广成本和获取用户的成本越来越高?第二,用户安装APP之后,用户并不是经常点击使用APP的,那这是为什么?数据表明90%的O2 ...

  10. 静态页面中如何传json数据

    首页传递参数组装成json数据,再编码 var param="{type:'"+type+"',text:'"+select_text+"',sele ...