Как я могу изменить уведомление Toast на Kindle Fire, чтобы оно было белым текстом на черном фоне? - PullRequest
1 голос
/ 23 марта 2012

Цвет тоста на Kindle Fire по умолчанию - черный текст на белом фоне.Я следовал инструкциям в этом ответе , чтобы попытаться установить цвет текста на белый, а цвет фона - на черный, но после этих изменений за фоном все еще остается белый, поэтому он выглядит как белый текст на черном фонена белом фоне.Есть ли какое-то другое поле, которое мне нужно, чтобы установить весь фон черным?Вот мой код:

  Context context = ctx.getApplicationContext();
  CharSequence text = "Toasty text...";
  int duration = Toast.LENGTH_SHORT;

  Toast toast = Toast.makeText(context, text, duration);
  TextView v = (TextView) toast.getView().findViewById(android.R.id.message);
  v.setTextColor(Color.WHITE);
  v.setBackgroundColor(Color.BLACK);
  toast.show();

edit: я закончил делать комбинацию ответа CommonsWare и этой ссылки , чтобы создать тост по умолчанию и установить цвет.

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Вместо использования статического метода makeText(), вы можете попробовать использовать обычный конструктор, а затем использовать setView() с вашим собственным пользовательским макетом для Toast.

1 голос
/ 29 марта 2012

CommonsWare подходит для полного контроля над оформлением тостов.Но если вы хотите продолжить путь, по которому идете, попробуйте:

toast.getView().setBackgroundDrawable(R.drawable.toast);

, поскольку вы можете видеть, что TextView находится внутри LinearLayout, на котором установлен фон рисования.Вам нужно изменить фон LinearLayout, а не TextView, содержащийся внутри.

Для ресурса, который можно рисовать (drawable / toast.xml), что-то вроде этого:действительно лучше сделать пользовательский макет для CommonsWare ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...