第一行代码-3.6 单位和尺寸

1、px和pt
  px表示像素,也就是屏幕中可以显示的最小元素单元。我们应用里任何可见的东西都是由一个个像素点组成的。单独一个像素点非常的微小,肉眼是无法看见的,可是当许许多多的像素点聚集到一起时,就可以拼接成五彩缤纷的图案。
  pt是磅数,一磅约等于1/72英寸,一般作为字体的单位使用。
  在PC上的时候,px和pt使用得心应手,但是由于手机的分辨率各不相同,相同的px在分辨率小的手机上比较合适的,在分辨率大的手机上就会显得比较小。(前提:两个手机一样大)
2、dp和sp
  dp 是密度无关像素的意思,也被称作dip,和px 相比,它在不同密度的屏幕中的显示比例将保持一致。
  sp 是可伸缩像素的意思,它采用了和dp 同样的设计理念,解决了文字大小的适配问题。
  那么相同的dp是怎么保证显示效果的一致呢?这里要谈到另一个概念:dpi(屏幕每英寸包含的像素数),比如一个手机屏幕的宽是2 英寸长是3 英寸,如果它的分辨率是320*480 像素,那这个屏幕的密度就是160dpi,如果它的分辨率是640*960,那这个屏幕的密度就是320dpi,因此密度值越高的屏幕显示的效果就越精细。
  所以dp*dpi才是显示到手机的像素数。dpi高的手机,需要更多的像素才能达到相同的效果。
  通过下面的代码可以显示手机的dpi:

float xdpi = getResources().getDisplayMetrics().xdpi;
float ydpi = getResources().getDisplayMetrics().ydpi;

这里写图片描述
  根据Android 的规定,在160dpi 的屏幕上,1dp 等于1px,而在320dpi 的屏幕上,1dp就等于2px。因此,使用dp 来指定控件的宽和高,就可以保证控件在不同密度的屏幕中的显示比例保持一致。
  所以对于我现在正在调试的手机来说,指定宽度为200dp和200*3/2=300px的效果应该是一样的。测试代码如下:

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical">

    <Button android:layout_width="300px" android:layout_height="wrap_content"
        android:text="button1"/>
    <Button android:layout_width="200dp" android:layout_height="wrap_content"
        android:text="button2"/>

</LinearLayout>

实际效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值