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 设备是不是总是保证过扫描?
给TV添加一个投屏热键:基于MTK9269 android 9.0