【前言--新手日记】

开始学习android开发,通过做一个通讯录练习,打算实现各种自己想实现的功能。

新手作品,技术含量很浅。主要是记录自己的学习过程。

纯学习之用,求评论,求建议,求教导。

【正题】

一、下了好多通话软件,感觉都不怎么样,表示还是比较喜欢原来的QQ通讯录。现在换成微信通讯录,没以前的感觉好。

  最后还是倾向于选择IOS的电话界面。

  先附图:

  IOS的:

         

  

  元器件很简单,主要问题还是在布局方面。

  分底部和顶部两部分说吧。

二、底部设计:

  底部设计,RadioGroup加四个RadioButton。

  

  (1)布局方面

  布局的均匀分布。(突然怀念WPF的UniformGrid)

  实现均匀分布刚开始自己做的时候感觉还是很棘手,学会了就很简单了。

  相关知识网站:http://blog.csdn.net/xiechengfa/article/details/38334327

  看了这个就明白的。其实就是layout_weight的应用。

  (2)效果设计

  个性化RadioButton--没有选择框框,一个图片在上面的这种定义

  代码:

  

 <RadioButton
android:id="@+id/contact"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="bottom"
android:gravity="center_horizontal"
android:text="@string/contact"
android:button="@null"
android:textColor="@drawable/rbtn_textcolor_selector"
android:drawableTop="@drawable/rbtn_contact_icon_selector"
android:background="@drawable/rbtn_menu_background_selector" />

图片资源就不上传了

  

  由于这里是点击之后一直保持那种状态,所以选择checked作为标准。

  直接上代码,很好理解的。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@mipmap/callpress" />
<item android:drawable="@mipmap/call" />
</selector>

  

三、顶部设计

  (1)布局设计

  采用的是RelativeLayout布局,Button+RadioGroup+Button。

  直接上代码,只展示了布局的那一部分:

  <Button
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:gravity="center"
/>

左边Button

 <Button
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:gravity="center"
/>

右边Button

中间的RadioGroup只有两句句

android:layout_centerInParent="true"
android:gravity="center"

【但是这样写会有warning,意思是屏幕小的话这样Button与RadioGroup会产生重叠。】
【如果有好的布局方式,请评论给我,谢谢】 (2)效果设计
主要需要了解的是中间的那一块效果。
也是直接上代码+网站吧。这些,其实看了就会了。
网站:http://blog.csdn.net/brokge/article/details/9713041 这里只是左边部分,右边部分省略。
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/white" />
<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="10dp" android:topRightRadius="0dp" android:topLeftRadius="10dp" />
<stroke android:width="1dp" android:color="@color/themecolor" />
<padding android:left="10dp" android:top="5dp" android:right="5dp" android:bottom="5dp" />
</shape>
</item>
</selector>

默认时候的background

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/themecolor" />
<corners android:bottomRightRadius="0dp" android:bottomLeftRadius="10dp" android:topRightRadius="0dp" android:topLeftRadius="10dp" />
</shape>
</item>
</selector>

press后的background

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/nvgbar1_background_press" />
<item android:drawable="@drawable/nvgbar1_background_default" />
</selector>

RadioButton的selector

【新手--android日记】实现IOS风格电话界面的更多相关文章

  1. Android 直接拨打电话界面

    Android 拨号界面和直接拨打电话界面代码控制 //定义TAG为空 private static final String TAG = null; //定义Button的点击事件 tell.set ...

  2. 构建 iOS 风格移动 Web 应用程序的8款开发框架

    使用 HTML5,CSS3 和 JavaScript 开发移动应用经过实践证明是一种可行的方式.这里收录了几款 iOS 风格的手机应用程序开发框架,帮助您使用擅长的 Web 技术来开发移动应用程序.这 ...

  3. Android与Swift iOS开发:语言与框架对比

    Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁.2015年秋已经开源.目前在linux上可用,最近已经支持Android NDK:在树莓派上有Sw ...

  4. PhotoSwipe - 移动开发必备的 iOS 风格相册

    PhotoSwipe 是一个专门针对移动设备的图像画廊,它的灵感来自 iOS 的图片浏览器和谷歌移动端图像. PhotoSwipe 提供您的访客熟悉和直观的界面,使他们能够与您的移动网站上的图像进行交 ...

  5. Android主题theme和风格style总结

    用到了Android的主题和风格,感觉很多地方需要总结和记录下来.其实主题和风格是有很大的作用的,特别是界面要求比较高的客户端. Style:是一个包含一种或者多种格式化属性的集合,我们可以将其用为一 ...

  6. 对话框 自定义 IOS风格 包青天

    activity     private void showDialog1() {         message = "您输入的邮箱后缀不是公司邮箱地址\n将导致您的借款审核不通过,请重新 ...

  7. HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信

    准备做一个网页版聊天界面,表情啊.图片啊.上传文件啊都应该要有,视频就算了,语音还是要的. 本文记录的是在网页上用GitHub上的Recorder进行在线录音和上传到服务器,前几天升了一下级,以后有时 ...

  8. Android学习笔记_1_拨打电话

    1.首先需要在AndroidManifest.xml文件中加入拨打电话的权限,对应的配置文件: <?xml version="1.0" encoding="utf- ...

  9. 使用Quasar设计Material和IOS风格的响应式网站

    使用Quasar设计Material和IOS风格的响应式网站 栏目: CSS · 发布时间: 8个月前 来源: segmentfault.com   本文转载自:https://segmentfaul ...

随机推荐

  1. bzoj 1927 [Sdoi2010]星际竞速(最小费用最大流)

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1576  Solved: 954[Submit][Statu ...

  2. [Hibernate] List 映射例子

    List 是 java 集合的一个工具,存储线性的数据,允许重复数据.开发者可以准确控制在 list 那个位置插入数据.本例子演示 Java 的 List 集合和 MySQL 数据库的映射应用. 使用 ...

  3. SRM 398(1-250pt)

    题意:有两个变量x和y,三种运算符+,*,-,组成等式"变量 运算符 变量 运算符 变量 运算符 变量",要求每个变量恰好出现两次,且等式的值为val的等式有多少个.注意不计算运算 ...

  4. C语言判断系统数据大/小端存储方式

    小端存储:数据的低位部分,存储于存储器的低地址空间里. 大端存储:数据的低位部分,存储于存储器的高地址空间里. 首先,一般PC数据存储方式是小端存储. 基本实现思想是:将存储器中所存的数据按字节以地址 ...

  5. A_star poj2449 k短路

    赛后填坑系列QAQ 贴代码呀 #include<iostream> #include<algorithm> #include<cstdio> #include< ...

  6. qt 关于内存泄漏的检测

    Qt 关于内存泄露的检测: 收藏人:guitarhua     2012-02-10 | 阅:  转:    |   来源   |  分享               Qt 关于内存泄露的检测:工具篇 ...

  7. 根据IP地址获取IP的详细信息

    <?php header('Content-Type:text/html; charset=utf-8'); function ip_data() { $ip = GetIP(); $url = ...

  8. 关于 Java Collections API 您不知道的 5 件事--转

    第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...

  9. C++ XML 解释库

    rapidxml  http://rapidxml.sourceforge.net/index.htm

  10. android ImageView scaleType属性(转)

    使用ImageView时经常会用到scaleType属性,如: 1 2 3 4 5 6 7 8 9 <ImageView   android:layout_width="50dp&qu ...