6_Andorid的尺寸单位和控件内外边距


  • 在使用布局或控件时,有时需要指定它们的尺寸。安卓系统提供了三种单位:

1.距离单位之px

以像素为单位进行设置,屏幕上每一个点,就是一个像素,例如一部安卓手机,屏幕像素是800x 480,就是说屏幕高度有800个像素点,宽度有480个像素点。

我们可以使用像素这个单位来指定控件的大小,控件之间的距离等,但是,用像素不是好的选择,用像素会给我们带来很多问题,为什么?我们用一个简单的例子说明

假设有两个物理尺寸都为5寸大小的屏幕,它们的屏幕分辨率不同,一个是1080*1920,另一个是450*800。如果指定一个按钮的大小为200px长,200px宽,那么它们的显示效果就如下图。很明显,两者的差别也太大了,界面就严重变形了。所以,想让一个区域的大小在不同屏幕的上显示的都差不多,就需要考虑像素密度。为了显示同样的长度,在密度大的屏幕上,使用到的像素就要多一些,在密度小的屏幕上,使用到的像素就要少一些。

2.距离单位之dp

  • 引入dp之前,先引入dpi这个概念:

什么是dpi?

  • dpi(dots per inch)叫做屏幕像素密度,就是每英寸有多少个像素点。

  • dp:密度无关像素,这是在布局和控件中应该使用的单位;

 

  • 安卓引入了dp(dip)的概念之后,实际显示的像素就可以通过下面这个公式计算出来

                                               px=dp∗(dpi/160)

为什么要使用dp?因为dp和密度有关,无关像素,即使在不同分辨率上,也能正常显示.

比如我在320*480的手机想让这个控件占宽度的一半,那好,因为我的dpi为160,所以我在这个屏幕上:1dp=1px(像素) ,这样的话,我这个控件使用的像素就是:160px = 160dp * 1.

在640*960的手机屏幕上也想让这个控件占一半就很简单了。我们只需要知道这个手机的dpi,如下如这个屏幕dpi为320,根据公式:px = dp*(dpi/160),把320代入,得到:1dp = 2px;那么这个控件实用的像素就是:320px = 160dp*2.

 

 

3.距离单位sp

  • sp:用于字体大小的设置,它可以让字体大小根据用户在设置中的设置,进行缩放;

使用一个I例子演示一下:

  • 新建一个Anroid应用程序,命名为S02_SP:

  • 修改一下布局文件,采用线性布局,新建两个TextView控件,一个大小为50dp,另一个为50sp:

  • 看起来好像没有什么区别,大小一样,但是sp是可以缩放的,如果在模拟机的设置改变字体的大小,被设置成sp字体的就可以进行缩放。我们试试在模拟器中缩小绿色背景的Hello World.
  • 打开模拟器的:Setting——>Display——>Front Size——>Small

  • 在模拟器中重新启动这个应用:

  • 运行发现,被我们设置成sp的字体,通过系统设置后,字体变小了:

4.控件的内边距和外边距

边距都可以单独设置,也可以同时设置: 

用例子演示一下:

  • 新建一个Android引用程序,名为:S03_Margin_Padding

  • 修改布局文件为线性布局,方向为垂直方向,然后添加三个TextView控件对比一下:

  • 运行这个Android 应用程序,可以清除的知道控件内边距和外边距的设置:


附录: 

本博文Demo下载:https://github.com/zGuangYuan/Android- 

github的用法:点我查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值