Android和支持多屏幕布局

我正在完成一个 Android应用程序,剩下的就是适应多种设备的UI布局和图形.我需要在屏幕上放置特定位置的特定元素.

Android文档解释了多屏分辨率和大小的分类方法,并解释了资源标签系统.

例如,WVGA800(480×800)和WVGA854(480×854)均被分类为普通高密度屏幕.为了满足这些要求,您需要创建一个名为“layout”的文件夹(“normal”)和“drawable-hdpi”.

问题在于,即使您使用“dp”单位,也不会区分同一分类的两个设备.如何分别为WGA800和WGA854提供布局/绘图?

这些比例是完全不同的,用户很容易注意到不好的缩放,并且由于我需要像分数和计时器这样的东西出现在背景图像的特定地方,这更加恶化.

同样的问题适用于对{WQVGA400(240×400),WQVGA432(240×432)}和{WVGA800(480×800),WVGA854(480×854)}).如何为WQVA400和WQGA432提供布局/绘图?

解决方法

我想你正在通向地狱.

Android运行在各种各样的设备上,每周更多,许多格式不存在,但会引入新的变量.所以即使你成功了,一个新的设备的屏幕尺寸略有不同,你的应用程序将失败.

使用特定的屏幕分辨率设计Android是一个错误,并且类似于您发现的问题,如果您强制所有页面在网络上具有完全相同的大小,则很少有效(例如,即使是整洁的固定宽度网站将在移动设备上惨败).

Android的设计旨在支持所有这些变化,但如果您尝试在每个屏幕尺寸上获得像素完美的绝对定位渲染,您将在潮汐中游泳.这可能是非常痛苦的,非常耗时和昂贵的,可能最终会失败.即使你成功,你将如何在所有这些屏幕变体上测试呢?这听起来像是测试地狱.

我强烈建议你接受你不能像你所需要的那样完成一切,而是看看如何使用相对于彼此流畅渲染对象的方法,所以应用程序在所有不同的变体中看起来不错,使用不同的布局每组决议,以改善不同尺寸屏幕的体验.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...