屏幕适配

为什么要适配屏幕?

    Android碎片化严重,各种不同的厂商定制android的rom,    市面上充斥着各种各样的设备,也有着各种各样的分辨率。

什么是分辨率?

     屏幕的分辨率是指横纵向的上的像素点数,单位是px。     1px为一像素点,一般手机分辨率的表示方法是以纵向像素点*横向像素点(电脑长度大于高度,电脑的分辨率显示的1920*1080是指横向像素点*纵向像素点,与手机相反)。     常见的分辨率有1280*960,1920*1080,一般来说屏幕的分辨率越高,则显示效果越好。

什么是屏幕像素密度(dpi)?

    屏幕像素密度(dpi),英文全拼是:“dot per inch”,译为每英寸显示的像素点数。    计算公式其实也很简单,用中文解释就是:先通过屏幕分辨率计算出屏幕对角线的分辨率,除以屏幕尺寸(屏幕尺寸是对角线长度,单位是英寸)    计算公式为:像素密度 = [开根号(横向像素点数的平方 + 纵向像素点数的平方)]÷屏幕大小。    以一手机分辨率为1920*1080,屏幕尺寸为6英寸,它的dpi为:    dpi = {√[sqr(1920) + sqr(1080) ] } /6 ≈ 367

单位介绍

1.px

    构成图像的最小单位。    一般android使用的屏幕的取值都是px。例如求屏幕的宽和高,那么返回的单位就是px

2.dp,dip

    现在有两台手机,手机甲的分辨率是1280*960,dpi是160,手机乙的分辨率是1920*1080,dpi是180。    假如我要在手机甲上面画一道铺满屏幕的横线,在甲上我要画此横线的像素值为960px,    而在手机乙上画这条横线需要画1080的像素值为1080px。Android手机这么多,如果每个手机都要这样写,无疑加大了开发难度。    所以引入了dp,dip这个单位。    dp.dip的英文全称是“Density Independent Pixels”,即密度无关像素。    以160dpi为基准,1dp = 1px。    那么为什么dp,dip可以解决这个问题呢?    如果我们在手机甲上画一条铺满屏幕的横线,因为手机甲为基准的dpi,所以这条横线的长度为960dp。    而手机乙上,它的dpi是180 = 1.125*160,即1dp = 1.125px。960dp = 960*1.125=1080px即为屏幕宽度的像素值。    所以说,在不同分辨率和不同像素密度的设备上,使用dp为单位可以保证在不同的设备上显示相同的效果。

3.sp

    Sp的英文全称为“Scale Independent Pixels”    主要是为了设置文字的大小的单位。    谷歌官方推荐使用12sp以上单位使用,避免用户看不清字。同时,谷歌推荐我们使用12sp,14sp,18sp和22sp这四种大小作为我们字体的首选大小。    还有不要使用奇数和小数为sp单位,因为可能会在单位转化的时候导致精度的丢失。

4.mdpi、hdpi、xdpi、xxdpi

    在android新建项目的时候,发现有几个开起来相似,却不一样的文件夹,为什么要设置不同的文件夹呢?    主要是为了我们适配的方便。    因为在不同的像素密度的设备上同一张相片的显示效果是不一样的。为了保证在不同设备设备显示效果一样,我们需要设置几张分辨率大小不同的图片来适配不同的设备。    在创建新项目的时候编译器会自动帮我们创建好不同的文件夹,我们需要做的就是把不同的图片放到不同的文件夹就行了。当程序运行的时候,系统会根据运行设备的分辨率的不同自动选择不同的图片进行填充。

    从android开发文档来看


在设计图标时,对应五种主流的像素密度(mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)应该按照2:3:4:6:8的比例进行缩放。
例如,一个启动图片的尺寸为48*48px,这表示在mdpi屏幕表示的尺寸为48*48px,那么进过比例换算,在hdpi上显示的是mdpi的1.5倍,就是72*72px


/**********2016/4/3更新*************/
之前很疑惑在Android Studio中如何放置不同分辨率的图片来显示。看了网上有些人数放在mipmap-dpi的目录下,结果发现还是应该在res目录下,新建drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi目录。分别将不同分辨率的资源图片放置在不同目录里面就行了

更多相关文章

  1. android 触摸点在屏幕中的坐标与bitmap在屏幕中坐标的比较
  2. Android保持屏幕常亮的两种方法
  3. Android-UI屏幕适配全攻略
  4. android屏幕适配,除了使用dp,还可以使用比例
  5. android dp sp px区别,android获取屏幕尺寸、密度
  6. 仅仅是个人记录:Android(安卓)的机型适配: 屏幕适配(包括dpi,dp,sp
  7. android中屏幕适配的方式
  8. Android高清输出四大名“捕”
  9. 入手 Nexus S

随机推荐

  1. OrmLite for android--Ormlite的大概介绍
  2. android M上可能需要开发者注意的权限大
  3. Ubuntu 将adb加入环境变量 及adb shell
  4. android 10 问题汇总
  5. wm8976的Android 2.2移植到Android2.3上
  6. Android注册广播两种方式的区别
  7. CheckBox控件中background和button的区别
  8. Android Design Support Library之TabLay
  9. S3C6410 移植Android(安卓)内核
  10. 转:在Eclipse中查看Android SDK的源代码