我正在尝试重用原始形状并使用这些声明性 XML 元素组成我的大部分用户界面。
如何制作一个可变的Android属性?
但我不想为每个属性值及其排列创建单独的 XML 文件,并且在此过程中重复大部分工作。
例如,我希望这个形状的消费者能够定义 android:radius 值?
<?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="3dp"/>
</shape>
从消费 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="@drawable/shape_box_round_blue_uniform" />
<!-- How to set the corner radius here? -->
<item android:drawable="@drawable/shape_box_round_blue" />
</selector>
解决方案?
- 如果可能的话,我不想使用任何 Java 代码隐藏/避免创建自定义控件/类的需要
- 使用维度资源可能是一条富有成效的途径?