【前言--新手日记】

开始学习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. How to Implement the IContextMenu Interface

    http://msdn.microsoft.com/en-us/library/windows/desktop/hh127443(v=vs.85).aspx IContextMenu is the m ...

  2. 最小生成树——[HAOI2006]聪明的猴子

    题目:[HAOI2006]聪明的猴子 描述: [题目描述] 在一个热带雨林中生存着一群猴子,它们以树上的果子为生.昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着, 猴子不会游泳,但跳 ...

  3. 调查:Java程序员最亲睐的Web框架

    这是关于Java的第二个调查,第一个调查请点这里查看. 这一次,我们要讨论的是web框架. 只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据.下面是其他开发者所使用w ...

  4. HashMap,TreeMap,LinkedHashMap学习

    Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快 ...

  5. dos 命令

    DOS远程桌面连接命令 mstsc /v: 192.168.1.250 /console cmd 运行 command删除文件 rd 文件名/S创建文件 MD 文件名 1. net user admi ...

  6. linux 搭建vpn (pptp)

    一.VPN服务器环境说明 操作系统:CentOS release 6.4 (Final) 本地网卡: 复制代码 代码如下: # ifconfig em1 Link encap:Ethernet HWa ...

  7. winform timespan 两个时间的间隔(差) 分类: WinForm 2014-04-15 10:14 419人阅读 评论(0) 收藏

    TimeSpan 结构  表示一个时间间隔. 先举一个小例子:(计算两个日期相差的天数) 代码如下: DateTime dt = DateTime.Now.ToShortDateString(yyyy ...

  8. [Rails Level 2] Ground up

    1. Rails commends line: Example: rails new blog --skip-test-unit --database=postgresql

  9. HDU1097 A hard puzzle

    A hard puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  10. OpenStack Cinder源代码流程简析

    版权声明:本博客欢迎转载,转载时请以超链接形式标明文章原始出处!谢谢! 博客地址:http://blog.csdn.net/i_chips 一.概况 OpenStack的各个模块都有对应的client ...