安卓高级主题——屏幕适配

本文介绍了Android屏幕适配相关知识。阐述了屏幕尺寸、像素密度、方向、分辨率等术语概念,说明了屏幕支持的范围。针对图片适配,指出不同屏幕ppi对图片显示大小的影响及位图缩放比例;对于布局适配,提出建立不同layout文件夹并按规则命名,让系统根据分辨率找对应布局文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

术语与概念

屏幕尺寸:

Android的中的所有实际的屏幕尺寸分为四个广义大小:小,正常,大,超大。(small,normal,large,and extra-large)

屏幕像素密度:

屏幕的物理区域内的像素的数量,通常简称为dpi(每英寸点数)

Android中的所有实际的屏幕密度分为六个广义密度:低,中,高,超高,超超高,超超超高。 (low,medium,high,extra-high,extra-extra-high,and  extra-extra-extra-high)

方向:

从用户的角度看到的屏幕方向,一般为横向或纵向,即屏幕的宽高比。

分辨率:

在屏幕上的物理像素的总数

密度无关的像素(DP)

虚拟像素单元,在定义UI布局的时候,你应当使用与密度无关的方式来表示布局尺寸或者位置。

屏幕支持的范围

Android把实际的屏幕尺寸和密度分成如下范围:

一组(四个) 广义大小:小,正常,大,超大。

一组(六个) 广义密度:

ldpi(low)-120dpi

mdpi(medium)-160dpi

hdpi(high)-240dpi

xhdpi(extra-high)-320dpi

xxhdpi(extra-extra-high)-480dpi

xxxhdpi(extra-extra-extra-high)-640dpi

解决图片适配的问题

android中同样大小的图片在不同屏幕上显示的大小是不一样的。
ppi(pixel per inch),就是每英寸的距离像素点的个数。

例如:HVGA屏就是320*480,一般是3.5寸,计算点密度为√(320^2 + 480^2) / 3.5 = 164,约等于160。

ppi越低图片显示的越大,ppi越高图片显示的越小。

创建用于不同密度可替代的位图,你应该遵循3:4:6:8:12:16 缩放比例六广义密度之间。例如你有一个位图drawable的中等密度屏幕48*48像素,所有不同大小应:

  • 超大屏幕至少是960dp * 720dp
  • 大屏幕至少是640dp * 720dp
  • 正常屏幕至少是470dp * 320dp
  • 小屏幕至少是426dp * 320dp

获取屏幕信息:

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        //获取图片的高和宽
        int heightPixels = dm.heightPixels;
        int widthPixels = dm.widthPixels;

        //密度比例
        float density = dm.density;
        //dpi
        int dpi = dm.densityDpi;

 解决布局适配的问题

解决方法:建立不同的layout文件夹,对于不同屏幕的分辨率,书写其专用的.xml文件。

多个layout文件夹在命名上有相应的规则,以分辨率480*854为例,
命名:layout-854x480

注意:
1、大数(854)必须在前,否则会报错。
2、两个数字之间的符号是小写字母"x",不是乘号。

系统会根据机器的分辨率来分别到文件夹里面找对应的布局文件。

在下方位置创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值