如何在Google TV中实现Toast叠加

时间:2013-03-23 12:48:15

标签: android overlay toast google-tv

我正在为Google TV创建一个应用程序。我正在尝试在广播的顶部创建一个自定义吐司覆盖。

我创建了自定义吐司,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_layout_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF"
android:orientation="horizontal"
android:padding="5dp" >

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:textColor="#000" />

</LinearLayout>

并在googleTV应用视图中实现:

     LayoutInflater inflater = getLayoutInflater();

            View layout = inflater.inflate(R.layout.main,
            (ViewGroup) findViewById(R.id.custom_toast_layout_id));

            // Toast...
            Toast toast = new Toast(getApplicationContext());
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
            toast.setDuration(Toast.LENGTH_LONG);
            toast.setView(layout);
            toast.show();

我的问题是如何让这个应用程序在应用程序中显示正常的广播信息,以便我可以在查看时触发此叠加?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

以下是执行此操作的一些方法:

  1. 您可以创建一个用户,每次他们想要在直播中看到这种祝酒词时,都必须明确启动该应用。该应用程序将具有透明活动,然后显示吐司或仅显示包含该信息的视图。您的活动将阻止与广播的所有其他互动,例如更改频道。

  2. 从服务调用toast或透明活动。看看这个开源应用:https://github.com/entertailion/Overlay-for-GTV

  3. 您还可以使用Android支持的系统警报窗口代替吐司或透明视图,以覆盖任何其他活动之上的视图。您需要在清单中使用“android.permission.SYSTEM_ALERT_WINDOW”,并且需要将窗口类型设置为“WindowManager.LayoutParams.TYPE_SYSTEM_ALERT”。