次の描画可能な XML があります。
background_view_rounded_top.xml
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="0.0px"
android:insetLeft="1.0px"
android:insetRight="1.0px"
android:insetTop="1.0px" >
<selector>
<item android:state_pressed="true">
<shape>
<gradient
android:angle="270.0"
android:endColor="@color/base_end_color_pressed"
android:startColor="@color/base_start_color_pressed" />
<corners
android:bottomLeftRadius="0.0dip"
android:bottomRightRadius="0.0dip"
android:radius="2.0dip"
android:topLeftRadius="10.0dip"
android:topRightRadius="10.0dip" />
</shape>
</item>
<item>
<shape>
<gradient
android:angle="270.0"
android:endColor="@color/base_end_color_default"
android:startColor="@color/base_start_color_default" />
<corners
android:bottomLeftRadius="0.0dip"
android:bottomRightRadius="0.0dip"
android:radius="2.0dip"
android:topLeftRadius="11.0dip"
android:topRightRadius="11.0dip" />
</shape>
</item>
</selector>
</inset>
startColor
そのとを変更したいendColor
。このドローアブルを何度も使用し、このような数十のxmlを持つことはオプションではないため、このxmlを数回コピーするだけではこれを行うことはできません。したがって、この xml を再利用して、コード内の色を変更したいと考えています。
また、background_view_rounded_bottom/middle/single と、角を丸くしないバージョンもあり、これらの xml にはすべてパラメータ化された色も必要です。