我正在为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只是在屏幕中间显示一张图片,所以不需要太复杂。
非常感谢任何帮助。
答案 0 :(得分:0)
使用该布局创建活动。启动活动而不是调用toast。
答案 1 :(得分:0)
Toasts将包含当前活动活动使用的主题。正如莱昂所说,如果你创建一个你想要主题的活动,那么toast将继承主题。请参阅:Toast background changing to match Activity's Theme