android TV 竖屏页面开发

由于android TV硬件的限制,导致了和android手机app的很多不同,其中一个就是页面只能进行横屏布局开发。即使在AndroidManifest.xml中对activity进行设置,将screenOrientation配置成portrait,可是放到电视机上运行依然只能横屏显示,这是由于android电视硬件本身不支持导致的。

可是这次的项目明确要求横屏和竖屏都要显示,这怎么办呢?后来我们想,既然不能竖屏,那能不能在横屏布局的时候对布局中的控件进行旋转呢,或者对图片进行旋转90度,不也和竖屏显示一样了嘛。基于这个思路,也找到了解决的办法,每个控件都有rotation属性,只要赋值90或者-90就能对控件中的内容进行右旋转和左旋转。这时要按照要求进行布局会有一定的难度,就是系统会先按照没有旋转之前的位置进行摆放,然后再旋转一次,所以布局需要考虑旋转后得到的目标位置和旋转之前的位置,这时需要一点逆向思维才能按照项目的要求对竖屏进行完美布局。

控件的布局问题是解决了,但是还有图片,由于图片不能进行旋转,因为旋转后的宽和高是和旋转前是一样的,所以对图片控件进行旋转就会产生黑边,因为图片很难是正方形,基本都是长方形。所以只能对图片本身进行旋转。由于项目中的图片是后台管理上传的,所以我们在后台管理项目中拿到图片后对它进行旋转。这里我参考了一篇文章,进过测试时可以用的(https://blog.csdn.net/zhanghan18333611647/article/details/79188556)。图片上传到服务器后,我们只要得到图片的URL就能进行展示了。

对于竖屏的开发,我觉得很多人看到硬件不支持竖屏显示,可能就直接放弃了。但这次笔者接到这个项目一开始觉得很简单,以为虚拟机一测试,横屏竖屏都没问题。后来才知道电视机硬件对portrait参数不支持。也想到要放弃,但项目经理们没有放弃,笔者也只能硬着头皮各种百度,并没有找到直接的解决办法。这里也算是对这个看似不能解决的问题的一种方案吧。毕竟笔者的项目比较简单,但还是感觉到了在横屏上进行竖屏布局还是有一定难度的,其难度可能因布局的复杂度而不同。希望对大家有所帮助。

如果还有问题,可以联系我:QQ 2101210743

猜你喜欢

转载自www.cnblogs.com/yipiaoganlu/p/10455300.html