360电视管家的UI做的相当不错,在各种分辨率的手机,电视终端上显示效果都差不多.于是研究了下他的实现方式.
360电视管家使用的px作为布局单位,layout文件只适配1080p的布局,这样做的好处是,程序画出来的效果,可以最佳的接近设计给的效果图.
但是其他分辨率怎么办呢?360电视管家在每一个独立的view初始化之后,都根据当前设备分辨率做了一次reset计算.这样就达到了各种分辨率的适配.
这样的计算虽然导致部分分辨率有细微的差异,同时这点差异,导致UI需要左右留白,但是这并不影响整体视觉,反而会更美观.
这点差异与限制换来的结果还是非常值得的.
说UI做的不错,当然不会就只有这一点.360电视管家还做了很多自定义view,使得layout写的相当简洁.
当然也还有可以优化的地方.比如隐藏reset的计算,相识代码的重构…
更多的好或者不好,还是留给读者自己去分析吧…
说了这么多,进入主题吧…
代码在GitHub上:
https://github.com/rover12421/pxScale
效果图: