2013-03-23 4 views
1

Im создает приложение для 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(); 

Мой вопрос, как я могу сделать это приложение показать нормальный транслировать информацию в приложении, чтобы я мог запускать этот оверлей во время просмотра?

Любая помощь очень ценится.

ответ

2

Вот несколько способов сделать это:

  1. Вы можете создать приложение, пользователь должен явно запускать каждый раз, прежде чем они хотят видеть этот вид тостов на их прямом эфире. Приложение будет иметь прозрачную активность, а затем отобразит тост или просто представление с информацией. Ваша деятельность блокирует все другие взаимодействия с трансляцией, например, смены каналов.

  2. Вызвать тост или прозрачную деятельность от службы. Посмотрите на это приложение с открытым исходным кодом: https://github.com/entertailion/Overlay-for-GTV

  3. Вместо тоста или прозрачного представления вы также можете использовать окно системного предупреждения, которое поддерживается Android, чтобы наложить вид поверх любого другого действия. Вам нужно «android.permission.SYSTEM_ALERT_WINDOW» в вашем манифесте, и вам нужно установить тип окна «WindowManager.LayoutParams.TYPE_SYSTEM_ALERT».

+0

привет спасибо за ответ. Я создал приложение, но как установить прозрачность линейного макета верхнего уровня? Я пробовал Android: background = "@ android: color/transparent", но все еще показывает черный? Thanks – EHarpham

+0

Создайте прозрачный стиль с помощью «android: windowIsTranslucent». Посмотрите ссылку на приложение overlay для точного стиля. –

Смежные вопросы