【前言--新手日记】

开始学习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. MyBatis(6):MyBatis集成Spring事务管理(下)

    前一篇文章复习了MyBatis的基本使用以及使用Spring管理MyBatis的事务的做法,本文的目的是在这个的基础上稍微做一点点的进阶:多数据的事务处理.文章内容主要包含两方面: 1.单表多数据的事 ...

  2. 转:spring mvc model.addAttribute页面c:forEach取不到

    原文链接:http://www.cnblogs.com/beautifulFuture/p/3957426.html spring mvc model.addAttribute页面c:forEach取 ...

  3. 用canvas把图片变成黑白相片

    <!--这里没有代码--> 原来是把灰度系数分别 乘以 每个像素点的三个像素色(R,G,B)的值,然后得到的三个值加起来,再把得到的值赋值进去给每个R ,G,B. 微软的MSDN上提到的是 ...

  4. 《Web 前端面试指南》2、JavaScript 的 Bind 函数进阶

    使用 Bind() 设置方法中 this 对象 //<button>获取随机的人</button>​ //<input type="text"> ...

  5. 安卓在SQLiteOpenHelper类进行版本升级和降级

    一.升级(使用到onUpgrade()方法和onCreate()没有安装过才用到) 简单理一下思路:  v1.0 (也就是说第一次使用这软件,没有安装过 所有在onCreate() 方法里写代码)   ...

  6. mysql 查询随机一条记录

    项目中 需要查询热门帖子,查询结果是多条中一条:SQL 如下,记录下

  7. SVN server的搭建

    当做大的项目是,svn是代码管理的好工具,假设是用自己的server,那么须要搭建SVNserver. Subversion是一款很优秀的svnserver工具,笔者採用VisualSVN serve ...

  8. 给想上MIT的牛学生说几句

    [来信] 老师您好! 非常冒昧的来打搅您,仅仅是在学习上实在有些困惑才来向您求教一番. 我是计算机科学与技术的大一学生,我非常喜欢我自己的专业,可是学校里讲的东西太慢,太浅,所以我一般都是自学,我在自 ...

  9. Android(java)学习笔记223:上下文的区分

    1.两种上下文:  (1)Activity.this                               界面的上下文 (2)getApplicationContext()         整 ...

  10. 【原创】贴片电容的测量方法。。。这是我从自己QQ空间转过来的,本人实操!

    电容不工作一般分为3种情况,漏电.击穿.无电容.一般检测用万用表检测阻值一般调在10K-20K为测量标准,特别是贴片电容.把万用表的笔尖点在贴片电容的两侧,如下图测量: l1.jpg l2.jpg l ...