Google TV的自定义Toast

时间:2013-03-23 21:53:58

标签: android themes overlay toast google-tv

我正在为Google TV创建叠加层。我创建了一个透明主题,以便通过应用程序可以看到广播如下:

Styles.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="Invisible" parent="@android:style/Theme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

当不使用这个主题时,我可以使用以下方式显示带有图片的自定义吐司:

             View layout = inflater.inflate(R.layout.toast,
                        (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();

然而,当我使用这个主题时,它不显示,只显示标准吐司:

        Toast.makeText(this, "This game is over. Start a new game.", Toast.LENGTH_SHORT).show();

toast只是在屏幕中间显示一张图片,所以不需要太复杂。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用该布局创建活动。启动活动而不是调用toast。

答案 1 :(得分:0)

Toasts将包含当前活动活动使用的主题。正如莱昂所说,如果你创建一个你想要主题的活动,那么toast将继承主题。请参阅:Toast background changing to match Activity's Theme