问题描述
我有一个可以在移动设备上正常运行的android应用程序,但是我需要为此应用程序进行电视屏幕的新设计,这种新设计需要新的小部件和新的Java代码,这与用于手机的代码不同。
什么是最佳做法?我已经读过有关如何检测该应用程序是在电视上还是在移动设备上运行的信息,但我认为这不是最佳做法。
解决方法
您可以在https://developer.android.com/training/tv/start/start处找到完整的信息,但我也会分享一些建议:
- 请勿在电视应用中使用“回收站”视图,而应使用VerticalGridView。
- 在布局的左右边缘增加5%的空白,分别为48dp和上下边缘的27dp,以确保该布局中的屏幕元素将位于过扫描安全区域内。 UI元素具有针对性-与使用移动应用程序相比,这是开发远程控制应用程序时一个完全独特的概念。处理UI元素焦点的整个过程本身就是一个挑战,对于移动设备而言,这是一个“文化改变”。您需要开发如何突出显示焦点元素的基本逻辑,还需要设计和开发用户如何使用5键RCU在元素和元素块之间移动的逻辑。
- 显然所有的滑动和手势都不起作用,因此您应该重写这种逻辑。
这是找出设备类型的最简单方法:
val uiModeManager = getSystemService(UI_MODE_SERVICE) as UiModeManager
if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) {
//it is TV
} else {
//it is mobile
}