学习安卓布局前,先了解三个属性值:

1、fill_parent:

设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间

2、match_parent:

Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,
于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了

3、wrap_content:

        设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。

安卓的单位区别:

px:

px即像素,1px即代表屏幕上的一个物理像素点。px单位不建议使用

dp:

在介绍这个单位之前,首先我们来了解一下像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。
不同的手机/平板可能具有不同的像素密度。Android系统定义了几种像素密度:低(120dpi)、中(160dpi)、高(240dpi)、超高(320dpi)、超超高(480dpi)、超超超高(640dpi),它们对应的dp到px的系数分别为0.75、1、1.5、2、3、4,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“100dp”的图片,那么它在240dpi的手机上实际显示为100x1.5=150px,在320dpi的手机上实际显示为100x2=200px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果。

 dip:

dip和dp完全相同,只是名字不同而已。在早期的Android版本里面多使用dip,后来为了和sp统一起来建议使用dp。

 sp:

sp和dp类似,但是有一个唯一的不同点:
Android系统允许用户自定义字体大小(小,正常,大,超大等等),当大小为“正常”时1sp = 1dp = 0.00625英寸,而当大小为“大”或“超大”时,1sp > 1dp = 0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

使用场合:

谷歌的官方文档建议:文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如textSize="16sp"、layout_width="60dp"

偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线时:<View layout_width="match_parent" layout_height="1px"/>

android 学习 之 布局(上)的更多相关文章

  1. Android学习5—布局简介

    Android界面的布局主要有四种,分别为RelativeLayout.LinearLayout.TableLayout.FrameLayout,接下来分别介绍这些布局如何使用(为了简单起见,接下来的 ...

  2. Android学习----五大布局

    1.LinearLayout 线性布局 android:orientation="horizontal" 制定线性布局的排列方式 水平 horizontal 垂直 vertical ...

  3. Android学习——LinearLayout布局实现居中、左对齐、右对齐

    android:orientation="vertical"表示该布局下的元素垂直排列: 在整体垂直排列的基础上想要实现内部水平排列,则在整体LinearLayout布局下再创建一 ...

  4. android 学习Layout布局的使用

    android 常用布局 LinearLayout(线性布局) 线性的 垂直的 水平的RelativeLaytout(相对布局) 最灵活的TableLayout(表格布局) 使用GridView代替A ...

  5. android 学习 之 布局(下)LinearLayout,RelativeLayout,TableLayout,FrameLayout

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  6. 工作不久的安卓开发者,他们是这样规划自己的Android学习路线

    Android开发工作者工作不久的时候,会有一段迷茫期,觉得自己应该再学一点,却不知道从何学起,该怎样规划自己的学习路线呢?今天,我给大家梳理一下Android基础,就像建造房屋一样,要建造一座宏伟的 ...

  7. 【ALearning】第四章 Android Layout组件布局(一)

    在本章中,我们将Android学习组件布局.在前面的章节,我们也开始使用LinearLayout布局.然后我们在布局文件更加具体的学习和理解,会. Android的界面是有布局和组件协同完毕的,布局好 ...

  8. 三、Android学习第三天——Activity的布局初步介绍(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 三.Android学习第三天——Activity的布局初步介绍 今天总结下 ...

  9. Android学习笔记之布局技巧以及布局中的细节介绍....

    PS:休息两天,放一放手上的东西,做做总结... 学习内容: 1.Android中LinearLayout布局技巧... 2.layout中drawable属性的区别...   先简单的介绍一下dra ...

随机推荐

  1. windows电脑使用技巧及常用CMD

    管理用户和组 win+R,输入 compmgmt.msc 本地用户和组->用户 本地安全策略 win+R,输入 secpol.msc 本地策略->安全选项,启用禁止空密码登录如下图,可以防 ...

  2. 从零开始新建一个Maven 、springMVC工程

    相关代码:http://pan.baidu.com/s/1jIBUr1G 目标: 新建一个名为testSpringMvc的spring MVC工程,maven管理jar包: 1.新建maven管理的w ...

  3. redis集群登陆

    如何登陆redis集群 redis-cli -h 10.12.4.45 -p 7000 -c -a alkdsjf134rj01 ip:10.12.4.45 集群中的一个点 -c 以集群方式登陆.cl ...

  4. HDU1102 最小生成树prim算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题意:给出任意两个城市之间建一条路的时间,给出哪些城市之间已经建好,问最少还要多少时间使所有的城 ...

  5. vue 父组件传递数据给子组件

    父组件 <body> <div id="app"> <child v-bind:data = "test"></chi ...

  6. 返回值为 Record类型的函数 初始化 Result

    function TMiTeC_Storage.GetPhysInfo(Index: integer): TDeviceInfo; begin Finalize(Result); FillChar(R ...

  7. [转载]java中的标号:outer的作用

    转载自:http://blog.sina.com.cn/s/blog_6f8bd746010136yr.html 标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环 ...

  8. 分析器错误信息: 服务器标记不能包含 <% ... %> 构造

    我的程序如下:<form runat="server"><TABLE><TR><TD>用户名:</TD><TD&g ...

  9. PyalgoTrade 交易(五)

    我们继续采取简单的策略,这次模拟实际交易.这个想法很简单: 如果调整后的收盘价高于SMA(15),我们将进入多头仓位(我们下单买入市价). 如果调整后的收盘价低于SMA(15),我们退出多头头寸(我们 ...

  10. 转 关于nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'的问题

    原文地址: https://blog.csdn.net/Mao_Jonah/article/details/78965827 关于nvcc fatal : Value ‘sm_20’ is not d ...