关于Android界面适配的思考及最终解决方案

 我来答
世纪网络17
2022-06-22 · TA获得超过5952个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:143万
展开全部

一直以来都用 px映射表 来解决不同界面的适配性问题(参考: Android界面开发精要1:尺寸 )。最近在一些设备上发现,这种方案也有弊端:以UI图的基础设计是基于720*1280(如Galaxy Nexus)为例,最近发现有些设备的像素宽高比并不是如此,比如Nexus 4就是768*1280。

这种情形下,不同的映射方式会有不同的效果:

仔细思考就会发现问题的本质是: 控件宽高计算基准是不同的

这让我想起iOS开发中,其界面设计系统AutoLayout,就采用了一个计算公式:

也就是说,任何控件都可以以其他控件的属性值来定义自身的属性值,所以其可塑性非常高。不过实际应用中也会带来一个问题,就是太灵活,导致多重约束,有时候会彼此冲突。

仔细想想,最常见的视角参数应该就只有3个:

透过这3个参数,应该可以定义任意控件的属性值。

现在问题来了,Android怎么做到呢?答案是:**** android-percent-support-extend ****

对于值可以取:10%w , 10%h , 10% , 10%sw , 10%sh,缩写含义为

对于一开始的界面,最后xml文件为:

效果如下:

这种直接裸写百分比的方式比价繁琐,相较之下,目前采用 px映射表 的方案中写的px值直接在UI设计图中取就行,更加简单。
  其实px映射表方案也就是百分比的方案,而且x值和y值已经分开,所以也可以解决正方形变形的问题。
  目前需要客服的问题主要在于px映射为px,导致如果没有覆盖到设备的分辨率,就会出现问题,改成px映射为dp后,这种问题应该会减少很多。

Panda
2016-11-29

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式