Android TV 上的过扫描边距

Posted

技术标签:

【中文标题】Android TV 上的过扫描边距【英文标题】:Overscan margin on Android TV 【发布时间】:2015-03-06 08:20:58 【问题描述】:

我正在使用 ADT-1 开发工具包修改现有应用程序以在 android TV 上运行。 在 Android TV 上安装时,原始应用程序布局的外边缘被剪裁。 然后我跟着this link,为布局的根设置过扫描。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/base_layout"
  android:layout_
  android:layout_
  android:orientation="vertical"
  android:layout_marginTop="27dp"
  android:layout_marginLeft="48dp"
  android:layout_marginRight="48dp"
  android:layout_marginBottom="27dp" >
  .....
</LinearLayout>

但结果如下所示。 布局的根是margin这么多,它没有填满屏幕(红色矩形区域)。 根布局完全填充屏幕的过扫描边距像素是多少?提前致谢。

【问题讨论】:

我不确定你的问题是什么。通过将边距设置为根布局,您显然会获得更小的屏幕空间来显示您的内容。你想获得什么? 如果我不设置边距,外边缘布局被剪裁。我想知道将边距设置为根布局的确切像素是多少,以便我的内容可以填满屏幕而不会被剪裁。 【参考方案1】:

如果电视在系统设置中没有提供过扫描设置(就像我的索尼安卓电视一样),你可以通过shell修复它:

adb connect 192.168.0.100
adb shell wm overscan reset

如果重置未达到预期效果,请使用 LEFT、TOP、RIGHT、BOTTOM 像素值

adb shell wm overscan 0,0,0,0
adb shell wm overscan 10,20,30,40

【讨论】:

【参考方案2】:

没有正确的边距,因为它取决于您的电视

一些电视会放大图片(例如,那些具有非标准纵横比的电视)以使其适合屏幕,而另一些电视会保持图片原样。

因此,您要在布局中添加 10% 的边距,以确保它始终可见。使用 px 代替 dp 几乎没有区别。

【讨论】:

如果是真的,那就太不方便了。我们必须为每个根布局手动计算 10% 的边距并设置边距。 developer.android.com/training/tv/start/layouts.html#structure。我不知道他们为什么建议 dp 而不是 px。 因为有些电视的分辨率可能为 720p,而另一些电视的分辨率可能为 1080p。无论如何,如果您使用 Leanback 库附带的标准 UI 小部件,这些边距已经添加。 我还有一个问题。 Leanback 库中的一些 UI 小部件如何可以灵活地设置不同电视设备的超边距?我将 ADT-1 开发人员套件插入不同的电视设备。一些使用 Leanback UI 小部件的应用程序总是填满屏幕。 它们不是“自适应的”,如果这就是你的意思的话。如果你想自己看一下,这是 Leanback 库的 dimens.xml,它定义了 BrowseFragment 的边距:android.googlesource.com/platform/frameworks/support/+/refs/…

以上是关于Android TV 上的过扫描边距的主要内容,如果未能解决你的问题,请参考以下文章

Android TV 和 Fire TV 设备是不是总是保证过扫描?

如何从 Android TV 应用程序中删除垂直信箱?

如何访问 Android (TV) 上的推送通知计数器?

给TV添加一个投屏热键:基于MTK9269 android 9.0

给TV添加一个投屏热键:基于MTK9269 android 9.0

Android TV 上的 GCM