Android values

您所在的位置:网站首页 90dp是什么 Android values

Android values

2024-07-13 18:07| 来源: 网络整理| 查看: 265

最近在开发中遇到屏幕适配的问题:都是使用dp为单位,出来的效果却不一样。 对比手机: 屏幕对比 两个手机屏幕尺寸相同,都是5.7英寸,同样画100dp的线,在屏幕上的长度却不一样,Note5上显示的要短一些。

原因为两个手机最小宽度(以dp为单位)不同。 怎样计算

安卓根据手机ppi设置dpi,分为 120(ldpi)、160(mdpi)、213、240(hdpi)、280、320(xhdpi)、360、400、420、480(xxhdpi)、560、640(xxxhdpi); 根据DisplayMetrics可以获取到手机dpi,Note5比较特殊为560(ppi为515),A8为480(ppi为386)。 所以

Note5 dp=160*1440/560=411

A8 dp=160*1080/480=360

怎样解决

安卓会自动根据手机的大小(按宽度算 dp为单位)去选择values或者values-swxxxdp。 sw为small width,后面接的值表示,屏幕的最小宽度dp大于这个值的时候启用。 所以写了两个dimens.xml分别放在 res/values/dimens.xml res/values-sw400dp/dimens.xml Note5会找values-sw400dp/dimens.xml,A8会找默认的values/dimens.xml;

默认的总宽度为360dp,放在values/dimens.xml文件中:

1dp 2dp 3dp 5dp 6dp 7dp 8dp 10dp 11dp 12dp 13dp 14dp 15dp 16dp 18dp 20dp 22dp 24dp 26dp 30dp 32dp 36dp 40dp 42dp 45dp 46dp 50dp 52dp 60dp 65dp 70dp 80dp 90dp 100dp 120dp 130dp 150dp 190dp 200dp 240dp 250dp 255dp 300dp

411dp的宽度呢?由于411和360是1.14倍的关系,所以 DIMEN_1dp = 1.14dp

1.2dp 2.4dp 4.8dp 6dp 7.2dp 8.4dp 9.6dp 12dp 13.2dp 14.4dp 15.6dp 16.8dp 18dp 19.2dp 21.6dp 24dp 26.4dp 28.8dp 31.2dp 36dp 38.4dp 43.2dp 48dp 50.4dp 54dp 55.2dp 60dp 62.4dp 72dp 78dp 84dp 96dp 108dp 120dp 144dp 156dp 180dp 228dp 240dp 288dp 300dp 306dp 360dp


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3