переопределение стиля в Android - PullRequest
2 голосов
/ 18 октября 2010

Допустим, у меня есть макет со стилем:

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

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

1 Ответ

1 голос
/ 08 ноября 2011

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

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

...