Как узнать цвета определенного телефона Android - PullRequest
1 голос
/ 12 января 2011

Я видел много разных «тем» для Android, в зависимости от устройства.Например, в моем HTC WildFire цвет подсветки - «салатовый», а цвет эмулятора - оранжевый.

Есть ли способ узнать, каковы основные цвета интерфейса устройства, на котором запущено мое приложение?

Так что я могу установить (например) TextView s цвета фона, чтобы соответствовать теме устройства.

EDIT: Вы сказали мне, что это невозможно, так что ...

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

Спасибо !!

Ответы [ 4 ]

1 голос
/ 12 января 2011

На самом деле это не определенный цвет, сами эти рисунки заменяются на эти модифицированные скины Android, которые выпускают HTC, Samsung и т. Д. Таким образом, программно нет прямого способа узнать, какой будет цветовая схема. Лучше всего было бы просто определить свои собственные элементы рисования для ваших виджетов с вашей собственной цветовой схемой или даже повторно использовать значения по умолчанию со стандартного Android, но скопировать их в папку для рисования вашего приложения, установить их в StateListDrawable и применить их к виджеты. Это гарантирует, что вы получите один и тот же цветовой стиль на всех платформах, с недостатком в том, что ваше приложение не будет соответствовать схеме остального скина. В зависимости от макета вашего приложения это, вероятно, не будет проблемой.

1 голос
/ 12 января 2011

Я не думаю, что у вас есть способ получить цвет выделения по умолчанию, но вы, безусловно, можете установить свой собственный, используя атрибут textColorHighlight = # aarrggbb в TextView в макете.

0 голосов
/ 13 января 2011

Вы можете использовать @android:drawable/list_selector_background (или кодовую форму: android.R.drawable.list_selector_background) в своих представлениях.Он имеет каждое из состояний селектора по умолчанию.Вы также можете создать селектор в папке для рисования, например, такой (по имени что-то вроде default_highlight.xml):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
      android:drawable="@android:drawable/list_selector_background" /> <!-- pressed -->
        <item android:state_focused="true"
      android:drawable="@android:drawable/list_selector_background" /> <!-- focused -->
    <item android:drawable="@android:drawable/list_selector_background" /> <!-- default -->
</selector>

и изменить любую из тех, которые вы можете настроить.Затем вы используете его, как и любой другой объект для рисования, устанавливая для него фон вида (default_highlight или как вы его называете).

0 голосов
/ 12 января 2011

Насколько я знаю, нет пути (я не понимаю, как это может быть на самом деле). Я полагаю, что вы могли бы иметь несколько разных «тем» в своем собственном приложении и позволить пользователю выбрать одну, чтобы, по крайней мере, несколько соответствовать остальным их настройкам.

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