头条屏幕适配问题汇总及解决,此次你值得尝试

因为该方案确实值得咱们使用,因此借助你们开源的力量一块儿来完善,此次你值得尝试。java

适配的原理及怎么适配?

Android 屏幕适配从未如斯简单(8月10日最终更新版),因为文章写的较早,请用 1.19.2 版本及以上来完美适配。android

如何建立 mdpi 1080 * 1920 设备的预览图?

建立新的模拟器设备,而后修改分辨率和屏幕尺寸使其达到 mdpi 便可。git

webview 加载后发现 density 复原?

因为 WebView 初始化的时候会还原 density 的值致使适配失效,继承 WebView,重写以下方法:github

@Override
public void setOverScrollMode(int mode) {
    super.setOverScrollMode(mode);
    ScreenUtils.restoreAdaptScreen();
}
复制代码

如何让系统 View 尺寸正常?

后面提到的 Dialog 和 Toast 其实均可以用用这种解决方案,就是在 inflate 相关 View 以前调用 ScreenUtils#cancelAdaptScreenshow 以后调用 ScreenUtils#restoreAdaptScreen 便可,这样就可让系统 View 显示正常尺寸。web

显示 dialog 尺寸有问题?

若是你适配传入的不是 mdpi 下的尺寸,而是 xxhdpi,那么可能会致使 AlertDialog 跑到屏幕外边,因此在文章中我也提到了只用 mdpi 来适配,正常状况的 mdpi 是会呈现比较小的尺寸,若是你要取得和原生一致的效果,那就利用上面提到的「如何让系统 View 尺寸正常」封装下在 Dialog 显示前调用 ScreenUtils#cancelAdaptScreen,Dismiss 后根据需求看是否须要 ScreenUtils#restoreAdaptScreen;或者你也能够给 Dialog 定制统一的 styles 来解决尺寸(<item name="android:windowMinWidthMinor">576dp</item> <!-- 占 80% 屏宽 720 * 0.8 = 576 -->)、字体的问题。固然,若是项目组有封装好的 Dialog,那么统一修改这个 Dialog 库的尺寸便可。app

Toast 尺寸有问题?

使用 1.19.1 及以上版本的 ToastUtils 来显示 Toast 不会有这个问题(解决之道就是上面提到的「如何让系统 View 尺寸正常」),固然你也能够本身封装不用个人 ToastUtils;或者参照 CustomToast 来自定义 Toast 布局。ide

更大尺寸的设备想要显示更多的内容?

可使用 sw 的方案来解决尺寸更大的设备能够显示更多的内容,本方案和 sw 并无冲突,因此若是你须要在全面屏或者大屏设备显示更多的内容能够建立新的 dimens 来解决,这样就能够作到在某一尺寸范围内的设备显示效果都一致,解决了某些人老是口口声声说「更大的屏幕就应该获取更多的信息啊」。布局

后续若是还有问题能够到 GitHub 屏幕适配问题汇总及解决 中提 issue

相关文章
相关标签/搜索