¿Cómo hacer referencia a los atributos de estilo de un dibujable?

Quiero tener 2 temas seleccionables para mi aplicación. Para hacer eso, definí algunos atributos, como este:

 <attr format="color" name="item_background" />

Entonces, creé ambos temas, así:

  <style name="ThemeA">
     <item name="item_background">#123456</item>
 </style>

 <style name="ThemeB">
     <item name="item_background">#ABCDEF</item>
 </style>

Este método funciona muy bien, lo que me permite crear y modificar varios temas fácilmente. El problema es ese parece que solo se puede usar en Vistas, y no en Drawables.

Por ejemplo, hacer referencia a un valor de una Vista dentro de un diseño funciona:

 <TextView android:background="?item_background" />

Pero hacer lo mismo en un Drawable no:

 <shape android:shape="rectangle">
     <solid android:color="?item_background" />
 </shape>

Recibo este error cuando ejecuto la aplicación:

    java.lang.UnsupportedOperationException: Can't convert to color: type=0x2

Si en lugar de?item_background Uso un color codificado, funciona, pero eso no me permite usar mis temas. También probé?attr:item_background, pero sucede lo mismo.

¿Cómo podría hacer esto? ¿Y por qué funciona en Vistas pero no en Drawables? No puedo encontrar esta limitación en ninguna parte dela documentació ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta