实现效果:

整理思路:

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. 关于在DWZ使用ssh后台查询的几种方式

    1.查询所有记录,并以列表形式查询 DaoImpl public PageBean queryByPage(String hql, List<Object> listobj, int pa ...

  2. Android SDK Manager国内无法更新的解决方案

    万里长城永不倒,千里黄河水滔滔.算了跑题了. 但还是要吐槽这下这个万里长城,感谢 方滨兴 叫兽 给我们净化了互联网,靠!什么&!@#¥ 此处略去一万字. 现在由于GWF,google基本和咱们 ...

  3. Winform DataGridView添加列头checkbox

    using System; using System.Data; using System.Drawing; using System.Windows.Forms; using Yanwen.Logi ...

  4. eclipse安装ermaster建模插件

    下载ermaster.jar 放到plugins重启eclipse即可

  5. python学习之jquery小练习

    <html> <head> <title>html/css/js学习小结</title> <script src="jquery-1.8 ...

  6. php,javscript调用百地图度API实现标记

    最近一个项目需要用到地图的定位和标记功能,本来考虑使用google map API .但是在国内这个速度确实很慢,有时候加载到一半就出现错了,不过可以通过google agent 来解决在国内的访问速 ...

  7. Spark Tungsten揭秘 Day1 jvm下的性能优化

    Spark Tungsten揭秘 Day1 jvm下的性能优化 今天开始谈下Tungsten,首先我们需要了解下其背后是符合了什么样的规律. jvm对分布式天生支持 整个Spark分布式系统是建立在分 ...

  8. ofbiz进阶之框架配置文件指导

    The Open For Business Project: Framework Configuration Guide 原文链接:http://ofbiz.apache.org/docs/corec ...

  9. response 后刷新页面,点击按钮后,禁用该按钮

    一,正常的点击按钮后,将其灰显,全部执行完毕再正常显示. this.btnSave.Attributes.Add("onclick", "if (typeof(Page_ ...

  10. jsf2.0视频

    jsf2.0 入门视频 教程   需要的看下.初次录视频.还有很多需要完善. JSF交流QQ群84376982 JSF入门视频下载地址  http://pan.baidu.com/s/1jG3y4T4 ...