2013-06-25 5 views
0

Предположим, что я выбираю собственные цвета для всего, рискуя быть не совсем подходящими для окружающих приложений.Android: недостатки без темы

Мое беспокойство в том, что даже если я выбираю None в моей теме в Eclipse, я все еще получаю некоторые темы по умолчанию:

Рез/значения/styles.xml

<resources> 
    <style name="AppBaseTheme" parent="android:Theme.Light"> 
    </style> 

    <style name="AppTheme" parent="AppBaseTheme"> 
    </style> 
</resources> 

Рез/значения -v14/styles.xml

<resources> 
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
    </style> 
</resources> 

Мой вопрос: Если мои цвета кажутся после того, как все более или менее гармоничный на Android, мне нужно беспокоиться, если я удалю AppBaseTheme и AppTheme с styles.xml, а также удалю android:theme в AndroidManifest.xml?

ответ

0

Ответ НЕТ, вы этого не делаете. Каждое устройство Android имеет тему по умолчанию на основе установленной версии и производителя.

Например, создайте макет с панелью прогресса и без стиля и тем, а затем запустите приложение в эмуляторе с api 10, а в другом - с api 17. Вы увидите разницу в дизайне из-за используемая по умолчанию. То же самое происходит, если, например, ваше приложение нацелено на api 10 и работает на устройстве с более высоким api, стили приложения будут от api 10.

Если вы пропустите что-то в своем обычном стиле, тогда что-то будет разработанный на основе темы по умолчанию api, на которую настроено ваше приложение. Это может привести к плохому пользователю, помимо уродства. Кроме того, в новых версиях android есть некоторые элементы ui (например, панель действий), которые работают только на основе стилей и тем, которые являются платформой, и это ваш самый большой риск (IMHO).

Нижняя линия заключается в том, что если вы не заботитесь о стилизации, тогда пусть андроид обрабатывает все, не удаляя ссылки на стиль и темы из ваших res и manifest. Если вы хотите все стилизовать сами, тогда ваш лучший путь к успеху - следовать системе стилизации, которую андроид предлагает и переопределяет атрибуты, чтобы создать свой собственный стиль.

Надеюсь, что это поможет ...

P.S. Имейте в виду, что стиль - это не только цвета, но и многое другое (например, размеры, список состояний, анимации, чертежи, 9 патчей и т. Д.), Которые вы должны учитывать при создании собственных стилей ...

+0

Другими словами, вы указываете, нравится ли мне это или нет, я использую темы. Если я опускаю упоминание тем в моем коде и сам определяю все атрибуты (цвета, размеры и т. Д.), Я все равно буду использовать тему платформы по умолчанию. Следовательно, если моя цель состоит в том, чтобы контролировать каждый аспект пользовательского опыта, тогда мне лучше принять тему и переопределить то, что я хочу, а не вообще исключать темы. – Calaf

+0

@Calaf Вы абсолютно правы! И это не так сложно, как кажется, но это много работы, например, мне потребовался почти час, чтобы пометить флажок так, как я хотел, потому что мне нужно было создать 15 чертежей для него ... – Christos

+0

Моя дилемма такова. Если я наследую, скажем, Holo.Light.DarkActionBar, я не вижу определения того, что я наследую. И хотя я указываю wrap_content как для layout_width, так и для layout_height на 32x32 ImageButton, например, я получаю гораздо большую кнопку, ясно, как результат некоторого набора настроек в теме, которую я наследую. – Calaf

0

Если вы собираетесь использовать свои собственные цвета просто создать свою собственную тему и установить его в том, что вместо AppTheme

+0

Вопрос в следующем: что я проиграю, если не использую темы? – Calaf

0

Как при использовании style атрибутов непосредственно внутри HTML вы не сможете повторно использовать стилирование в разных представлениях, если вы не пишете одинаковые стили для каждого вида, в котором вы хотите.

Легче просто написать свою тему и предоставить ее для просмотра/activities, вы хотите иметь пользовательскую тему/стили.

Что я получаю от: вы не сможете управлять стилем так же легко, если вы добавляете стиль прямо в свои взгляды и Activities, и это может быть беспорядок для реализации глобального стиля позже, когда ваше приложение растет ,

также процитировать official Android theming guide:

Стили в Android разделяют подобную философию каскадных таблиц стилей в веб-дизайне, они позволяют отделить дизайн от содержимого.

И ответить на ваш вопрос: Нет, вам не нужно беспокоиться. Вы можете удалить все, что захотите, но не рекомендуется использовать styles.xml, поскольку вышеупомянутые причины.