Ответ 1
Вы можете создать
атрибуты стиля
я думаю, это то, что вы ищете. Они в основном являются переменными атрибутами. Например. вы можете использовать это в своих theme.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- You can define attributes here -->
<attr name="button_radius" format="reference" />
</resources>
Определяет ссылку на переменную: button_radius Это можно использовать в стилях или в XML файлах макета:
<!-- You can use them like so: -->
<style name="MyApp.Theme1" parent="android:Theme.Holo.Light">
<item name="button_radius">12</item>
</style>
<style name="MyApp.Theme2" parent="android:Theme.Holo.Light">
<item name="button_radius">36</item>
</style>
Таким образом, изменив тему, вы можете использовать разные значения радиуса. Ниже приведен пример UNTESTED, как вы можете изменить свою форму:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#449def"
android:endColor="#2f6699"
android:angle="270"/>
<stroke
android:width="1dp"
android:color="#2f6699"/>
<corners
android:radius="?button_radius"/> <!-- NOTE the ?button_radius-->
</shape>
Пользователи могут просто применять другой стиль для использования разных атрибутов. Я не знаю, отвечает ли этот пример на ваш вопрос, но вы можете многое сделать, объявив атрибуты в своих темах. Эти атрибуты являются динамическими ссылками. Для получения дополнительной информации о возможностях см. Эту статью