2010-10-18 4 views
2

Скажут у меня есть макет в стиле:переопределение стиля в андроиде

<LinearLAyout ... > 
    <TextView ... style=someStyle /> 
    <ImageView ... style=someImageStyle ... /> 
</LinearLayout> 

стиль будет определен в XML в моем проекте. Как я могу переопределить этот стиль с помощью внешнего xml? (я спрашиваю, потому что я заметил, что в представлении нет applyStyle \ setStyle или что-то в этом роде (лучше всего, потому что стиль нужно разобрать, сравнить с android: attr для проверки, а затем применить к каждому элементу представления). я удивляюсь, как я полагаю, я сделать downlaodable темы для моего приложения.

+0

Я прочитал «стили и темы для Android для Android» уже этот вопрос не упоминается там :-) – codeScriber

+0

вы случайно прочитали это http://stackoverflow.com/questions/2016249/how-to-programmatically-setting- style-attribute-in-a-view – Terrance

+0

yup, это, к сожалению, то, что я, хотя ... я думаю, что это немного хромой, я не могу иметь загрузчика, например, для размеров и цветов, например, для стиля, который создает объект атрибута, который я могу пройти на C'tor объекта OR, используемого в applyStyle(), он будет таким же, как определение ever.ything в xml-файлах, а затем их программная установка – codeScriber

ответ

1

После некоторого опыта я могу поделиться своими мыслями об этом здесь в моем вопросе ... Так первое замечание, даже в собственном стили, используйте размеры и атрибуты как можно больше. Таким образом, если вы когда-либо захотите программно применить стиль к представлению, вы можете использовать getResources.getDimen ..., getRessources(). getColor(), getResrouces.getDrawable () и т. д.

Кроме того, вы можете взять треску e из aapt или откройте существующий apk и возьмите скомпилированный xml оттуда, а затем используйте тот же код, читающий xml (это код C mind you !!!) из источника android. я бы не сделал это по той простой причине, что это излишне, чтобы применить простой стиль к представлению. Время, необходимое для написания метода, слишком короткое. и если вы должны сделать это в xml, вы можете создать xml-файл только с вашим видом, а затем раздуть его, но вы не сможете заменить стиль во время выполнения. для этого вам нужно определить свой собственный механизм для замены цветов, размеров, фона и т. д. и также обеспечить изображения, что не так просто, читая эти изображения из локального хранилища, если я не ошибаюсь, это менее продуктивно затем читать их из активов или доступных каталогов.

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