title: Change color of shape in xml drawable file through layout
body: <p>So I created this drawable xml file called rounded_rect. I initially set its color to red. However I want to be able to change this color in my layout file. </p>
  
  <p>rounded_rect.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle" android:padding="10dp"&gt;
  &lt;solid android:color="#ffff1900"/&gt;
  &lt;corners
      android:bottomRightRadius="15dp"
      android:bottomLeftRadius="15dp"
      android:topLeftRadius="15dp"
      android:topRightRadius="15dp"/&gt;
  
  &lt;stroke android:width="4dp"
      android:color="#000000"/&gt;
  &lt;/shape&gt;
  </code></pre>
  
  <p>My layout file contains a custom View called ItemView. One of my custom attributes is background color.</p>
  
  <pre><code>&lt;custonview.android.example.com.customview.ItemView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      custom:imagePath="@drawable/yes"
      custom:text="Yes"
  
      custom:backgroundColor="#000000"
  
      android:layout_row="0"
      android:layout_column="0"
      android:background="@drawable/rounded_rect_green"
      android:layout_margin="30dp" /&gt;
  </code></pre>
  
  <p>The goal is to be able to change the color in my drawable file to the color I assigned in my layout file. Here is my ItemView.java file</p>
  
  <pre><code>public class ItemView extends View {
  
      //attributes of item view
      private Drawable drawable;
      private String text;
      private int backgroundColor;
  
      private int width, height;
      private Paint paint;
  
      public ItemView(Context context, AttributeSet attrs) {
          super(context, attrs);
          TypedArray a = context.getTheme().obtainStyledAttributes(attrs,
                  R.styleable.ItemView, 0, 0);
          try {
              text = a.getString(R.styleable.ItemView_text);
              backgroundColor = a.getInteger(R.styleable.ItemView_backgroundColor, 0);
              drawable = a.getDrawable(R.styleable.ItemView_imagePath);
          } finally {
  
          }
          paint = new Paint();
          width = drawable.getMinimumWidth() / 2;
          height = drawable.getMinimumHeight() / 2;
      }
  
      @Override
      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
          setMeasuredDimension(width, height);
      }
  
      @Override
      protected void onDraw(Canvas canvas) {
          //positions the image in the middle horizontally and a little above the text below
          drawable.setBounds(width / 4, height / 4 - 50, width - (width / 4),
                  height - (height / 4) - 50);
          drawable.draw(canvas);
  
          paint.setTextSize(100);
          paint.setColor(Color.BLACK);
          canvas.drawText(text, width / 2 -
                  paint.measureText(text, 0, text.length()) / 2, height - 50, paint);
      }
  }
  </code></pre>
  
  <ul>
  <li>Maybe I am over contemplating it. Free free to be creative in your answers. Thank you in advance </li>
  </ul>