android 屏幕适配问题

2018-06-27 10:16:52 +08:00
 MudBodhisattva

现在大家写 android 在屏幕适配方面 是多写几套布局还是用 ConstrainLayout 还使用百分比布局?

5233 次点击
所在节点    Android
13 条回复
yuriko
2018-06-27 11:20:20 +08:00
ConstrainLayout 不是必须的

写 UI 的时候自己心里得清楚哪里有多宽,不一定是百分比

一般只有搞不定的时候采用多组资源的方式解决问题,比如 pad 版和 phone 之间差别大的时候
CrisTao
2018-06-27 11:25:07 +08:00
老老实实用 dp 不就行了吗,还有什么需要适配的?
MudBodhisattva
2018-06-27 12:10:49 +08:00
@CrisTao dp 布局一层套一层,然后有些屏幕大小密度不一样的,比如说很小的,ui 就会放不下,感觉百分比省力些,但是百分比子 view 用会出问题,约束的话新出来的也在用然后有些地方还是不满足
MudBodhisattva
2018-06-27 12:14:12 +08:00
@yuriko 主要 android 碎片化实在恶心,尤其是屏幕小的,用 dp 看着差不多,在小屏幕设备上就超了。
KNOX
2018-06-27 12:16:36 +08:00
@MudBodhisattva 你说的小屏幕有多小,现在连 5 寸的机子都很少了。
0x8192dd
2018-06-27 12:30:01 +08:00
适配也是具体页面具体策略来的,没有什么银弹,大部分页面 match_parent + wrap_content + dp 值就够用了,小屏拥挤一点,大屏内容多点,很正常,别人买大屏手机是为了看更多内容而不是看放大内容,同样的,买小屏手机也是为了操作更方便而不是看缩小的内容。
个别复杂页面,可能会用到百分比布局,比如转盘,老虎机这种需要根据屏幕尺寸等比缩放,但对于普通 App 来说,占比太少。
我一般以 5 寸左右的手机( Pixel,Nexus 5X )作为转换标准,在这个尺寸下,美术给 iOS 的设计稿( 4.7 寸 2x )的值除以 2 差不多就是 dp 值,切图也可以直接使用 iOS 的 2x 图
MudBodhisattva
2018-06-27 12:30:25 +08:00
@KNOX 最近在给一个搞物流的做 app,他们的设备是扫码枪,但是也能用手机,那个扫码枪的屏幕,o(︶︿︶)o 唉。这只是一种情况。
windsage
2018-06-27 12:43:10 +08:00
dp 适配,多几套尺寸,sw 适配
yukiww233
2018-06-27 12:57:31 +08:00
@MudBodhisattva #7
哈哈适配扫码枪有点惨 在上家做过 100 寸横屏大屏的适配..
yuriko
2018-06-28 11:43:37 +08:00
@MudBodhisattva 原则上 dp 的大小是按照屏幕 PPI 去配置的,相当于是一个分辨率 /屏幕大小的值,理论上不同手机对应的 dp 物理尺寸应该差的不大。
不过和 pt 单位的不同,dp 和像素的比值 density 一般也就一个整.5 的值,所以也就大概。


不过还有个坑就是…… density 值是由 OEM 去设的,一些小厂商可能会随便乱写……(我当年试过改这破东西)

所以我觉得你的问题要么是 OEM 设备不正规,要么就是缺 UI 设计
MudBodhisattva
2018-06-28 12:09:40 +08:00
@yuriko 设备是一个问题,主要还是缺 ui 设计啊,为了实现一个布局用本来的相对线性一层层嵌套太麻烦,新出来的约束用不习惯
yuriko
2018-06-28 13:50:43 +08:00
UI 实现一直都是个繁琐的事情,约束布局不见得就简单了
我现在连 RelatedLayout 都不怎么用了,觉得也习惯了

(而且,UI 不是只会把界面搞的更复杂么……
kinsomy
2018-07-04 09:54:03 +08:00
CL 对于复杂布局写的太复杂看起来太费劲了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/466186

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX