-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
对于横屏、平板电脑、TV 的适配 #44
Comments
如果是 APP 有两种布局文件,一种横屏,一种竖屏,如何在 manifest 支持配置两种设计效果图的宽高呢?看 README 里只能配置一套宽高。 |
@JiongBull 如果大部分是竖屏,只有一两个页面是横屏的话,可以使用代码 AutoSizeConfig#setDesignWidthInDp 随时都可以改变框架中设计图的宽高 。 如果是横竖屏都用的很多,用上面的代码切换起来就很频繁,但框架为副单位也增加了一套设计图尺寸,也就是框架支持设置两套设计图尺寸,manifest 中设置的是主单位的设计图尺寸,你可以使用 代码 为副单位设置另外一套设计图尺寸,这样你让竖屏页面使用主单位,让横屏页面使用副单位,就可以分开管理 |
谢谢。 |
设计师对平板设计了两套UI(横屏和竖屏),我改如何使用框架进行适配,如何切换宽高适配呢? |
其实我理解,适配平板或者折叠屏等这类问题,增加一个最大适配上限就能解决一部分需求;最大按照某个分辨率适配,超过这个分辨率直接用最大值计算,设计稿内容就不会被放大太多。 |
可能有人觉得 AndroidAutoSize 对横屏、平板电脑、TV 的适配效果不够好,这里统一解答下
AndroidAutoSize 对于横屏的适配:假如你某个页面的的设计图尺寸是 1920 * 1080,设计图是为竖屏设计的,运行设备的屏幕分辨率也是 1920 * 1080,当在竖屏的时候,一切显示完好,当设备切换为横屏时,屏幕的高或宽就已经互换,这时高为 1080 px,宽为 1920 px,横屏时如果
AndroidAutoSize 是以宽度为基准进行适配,AndroidAutoSize 就会将原本在竖屏时宽为 1080 px 的布局横向拉伸为 1920 px,布局宽度刚好平铺满屏幕,高度也会等比例放大,但布局高度却不会平铺满屏幕,所以会造成竖屏时高为 1920 px 的布局在横屏时纵向的内容显示不全,感觉整个布局被放大很多的视觉效果,如果想让布局在横屏时纵向内容显示完全,高度从 1920 px 缩小至 1080 px,就要让 AndroidAutoSize 以高度为基准进行适配,但是这样又会造成布局的宽度不能平铺满屏幕,导致布局的横向空间上有间隙,那为什么 AndroidAutoSize 只能让高度或宽度中,其中的一个平铺满屏幕,不能让高度和宽度同时平铺满屏幕呢,请看这个 回答,这就是 AndroidAutoSize 在横屏时的适配情况,如果你想布局在横屏时获得更好的适配效果,就只有让设计师针对横屏再出一套设计图 (针对横屏做单独适配这是基础吧,毕竟高和宽都完全不一样)
AndroidAutoSize 对平板电脑、TV 等大屏幕设备的适配:你根据设计师为手机出的设计图,实现为布局后,在手机上的显示是完好的,但显示在平板电脑、TV 等大屏幕设备上感觉变得很大 (如果是横屏,也会出现上面的效果),但我想告诉你这是正常的, AndroidAutoSize 能保证的只是小屏幕显示的内容和大屏幕显示的内容相对于整个屏幕的比例是相等的,因为平板电脑或 TV 的屏幕空间比手机大很多,所以将手机的设计图等比例放大到平板电脑或 TV 上,布局中的控件变大几倍甚至十几倍都是正常的,这就是百分比库的特性,如果你将为平板设计的设计图等比例缩小到手机上,你也会感觉布局在手机上的显示效果偏小,再一次强调这就是百分比库的特性,AndroidAutoSize 能做的只是在不同尺寸的屏幕上以设计图上的比例拉伸或缩放布局,至于这个布局在拉伸或缩放后的效果在这个屏幕上是否美观,不在 AndroidAutoSize 所考虑的范围内
其实不使用任何的百分比屏幕适配库(AutoSizeConfig.getInstance().stop(activity) 停止框架就可以了),直接使用原生的 dp 进行适配,就可以达到在越大的屏幕上显示更多的内容,百分比库是实现不了在越大的屏幕上显示更多的内容的,不管是小到手机还是大到TV,他只会让布局在所有屏幕上都显示相同大小的内容,因为这就是它的特性。
用户都希望在大屏幕设备上让 APP 能显示更多的内容,以更好的利用大屏幕的优势,这都是人之常情,但你想让一套手机设计图就能完美适配平板和TV,就是非常不现实的行为了。
如果你想让平板电脑、TV 等大屏幕设备能比手机屏幕显示更多的内容,并且达到更完美的适配效果,就只有让设计师针对平板电脑、TV 等大屏幕设备再出一套设计图 (这也是基础,毕竟尺寸差别这么大,如果出一套手机的设计图就能让平板电脑、TV 等大屏幕设备达到最好的适配效果,那那些音视频的 App 都不用花费这么多精力专门适配平板了),如果你觉得现在的适配效果还能接受或者想偷懒,那也可以继续使用手机的设计图来适配平板电脑、TV 等大屏幕设备。
The text was updated successfully, but these errors were encountered: