您的位置:首页 > 移动开发

移动端屏幕适配dp dpi 720P values-sw480dp layout-sw720dp

2017-09-11 15:47 148 查看
对于这个历史遗留性问题每次回头处理起来着实让人头疼

解决方案有以下几种

1.张鸿洋已经实现了并且在githup上的AndroidAutoLayout

但是担心不好维护最终还是老实使用回dp了。

2.一般来说设计师只需要更你说我这个图是几倍图你就放在相应的drawable文件夹即可,AS会为你做剩下的事情。至于字体大小或者控件高度,工具满天飞的现在设计师连dp都会给你标号的,是个Android程序要都知道dp是适配所有屏幕的吧?那么第二问题也不存在了。讲道理做完这些你基本上就不需要考虑屏幕适配的问题了。

也有特殊的情况 比如说手机屏幕上横向布局过多,这将造成什么呢?

屏幕的内容被挤出屏幕了?还是你做了single=true 导致文字后面出现’…’

解决方案:

1.这个在目前的约束布局中似乎给出了解决方案(但目前不建议使用)

2.我的解决方法是
layout-sw720dp
这个是res文件夹下的一个布局文件意思是适配正常720P的手机屏幕写特定布局文件夹,一般一个项目里面不会有太多需要单独写的布局 除非设计师是个脑残。

3.还有一种即为dimens适配方案,大多数我们也就是说说而已,因为这样的工作量不比布局适配轻松 在这里我强烈建议大家养好界面上只有引用,不能存在
width = "48dp" color="#0ff"
这样的代码,写的时候爽 维护起来想哭。 而且如果是合作开发的话,会慢慢的没有人愿意和你合作的哦。

这里给推荐一个比较好的命名方式

color="@color/color_#156665"

dimen ="@dimen/space_10dp"

dimen = "@dimen/font_size_14sp"


这样非常容易维护和识别。

相信大家看了 你的布局里没有随意布局参数而是整齐的引用的时候一定会对你刮目相看的

以下为dimen适配的方案其实dimenTool这个工具类在几年前就有了 个人在项目中使用过一次 但是没有正正的遇到过屏幕适配的大问题。所以也只是留存在我的项目当中。前段时间客户说你的视频播放器控件存在黑边 我试过所有的手机后均没有发现黑边。在同事的提醒下我下载了一个夜神模拟器果然出现了传说中的黑边。

真正的屏幕适配开始了

dimenTool这个工具类似乎生成的工具参数有问题或者说根本就是错误的指引方式。不过值得借鉴

在他的基础上我稍加修改,分享到我的有道上下载链接

以下为正常情况能看到的资源文件



values-sw 为通用写法

120 240 320 480 分别为160的

0.75 1.5 2 3 所代表的为放大倍数

• ldpi 120 dpi

• mdpi 160 dpi

• hdpi 240 dpi

• xhdpi 320 dpi

• xxhdpi 480 dpi

还有 480P 720P 1080P 的概念

一般情况下相同的尺寸和上面dpi是对应的

灵感来源

如果你自己思考了dpi和分辨率的关系的话,你会发现,他们的关系就是没有关系

DPI:dots per inch,一英寸的像素数量,这个值是设备自己决定的,是写死的

那么问题来了 “不正常情况呢?”

比如说 1080P mdpi的屏幕 720P ldpi的屏幕

第一个屏幕大小有电脑的三分之一 第二个和同样尺寸的720P手机比起来相当模糊

这些都是不正常 的手机屏幕 一般不奇葩的话客户发现不了。

用模拟器的朋友们注意了

电脑屏幕一般都是一比一吧,也就是mdpi 也就是为什么自己的项目在手机上好好的到了模拟器(分辨率1080*1920)上就像压扁了一样

values-sw480dp-port
是很有必要的 这样可以强制拉伸到自己想要的大小。

系统判定为480dpi但是找不到就只能引入低分辨率的values直到为默认values。

一般设计师是为了照顾ios 会按照750P计算尺寸。Android就但当是720P的就行了 图片放在
drawable-xhdpi


说了这么多感觉自己仍然有些东西讲的不够清晰有关于分辨率的知识点感觉不是一次就能弄懂的。。做个笔记mark一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息