您的位置:首页 > 移动开发

安卓开发2-质量管理app-UI设计与实现

2015-06-24 14:44 323 查看
introduction:

就是为了实现这坨:



好戏开始了:

  上面一个titlebar,上面一个button,监听button onclick事件,发生时 跳到初始页面对应的那个activity。

我靠,写webapp写惯了,安卓组件没有这些,怎么办?!

    没招,简单的线性布局没法实现

    何况总不能搞9个activity啊,太扯淡了

    所以接下来就要看看怎么实现了,在安卓中

先放个教程:http://hukai.me/android-training-course-in-chinese/ux/design-nav/multi-sizes.html

questionS:
  1,是这个自适应屏幕的问题,


    在前端开发时候 有硬件宽度之类的,子元素的长宽都可以设置20%之类的百分比,但是安卓中都是px。dp。

  虽然有,matchparent,weight和layoutgravity但是在多个组件排列的时候还是没法控制相对位置对硬件屏幕的适应,因为相对位置tmd也是使用px,dp

来设置的

    那么就要来看下dp,px是啥

Density-independent pixel (dp)独立像素密度。标准是160dip.即1dp对应1个pixel,计算公式如:px = dp * (dpi / 160),屏幕密度越大,1dp对应 的像素点越多。
上面的公式中有个dpi,dpi为DPI是Dots Per Inch(每英寸所打印的点数),也就是当设备的dpi为160的时候1px=1dp;


,上述这些概念记不记得住没关系,只要记住一点dp是与像素无关的,在实际使用中1dp大约等于1/160inch。

那么dp究竟解决了适配上的什么问题?可以看出1dp = 1/160inch;那么它至少能解决一个问题,就是你在布局文件写某个View的宽和高为160dp*160dp,这个View在任何分辨率的屏幕中,显示的尺寸大小是大约是一致的(可能不精确),大概是 1 inch * 1 inch。

px:

即像素,1px代表屏幕上一个物理的像素点;



然而知道这些并没有什么暖用

不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”

发个链接:http://www.cnblogs.com/bjzhanghao/archive/2012/11/06/2757300.html

最后

1pt=1/72英寸=0.035厘米;

最佳实践,文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如textSize="16sp"、layout_width="60dp";偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线时:

<View layout_width="match_parent" layout_height="1px"/>
UI参考图:http://possiblemobile.com/wp-content/uploads/2014/01/Android-Design-Cheat-Sheet-highres.png


sp:

与缩放无关的抽象像素(Scale-independent Pixel)。sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

solution:

1,看这里自己引入百分比http://blog.csdn.net/lmj623565791/article/details/45460089
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: