title: Add shadow to the ShapeDrawable programmatically
body: <p>I am trying to make buttons with different gradients programmatically. I use ShapeDrawable and it works like a charm. </p>
  
  <pre><code>RoundRectShape rs = new RoundRectShape(new float[] { 12f, 12f, 12f, 12f, 12f, 12f, 12f, 12f }, null, null);
  ShapeDrawable sd = new ShapeDrawable(rs);
  ShapeDrawable.ShaderFactory sf = new ShapeDrawable.ShaderFactory() {
  
      @Override
      public Shader resize(int width, int height) {
          LinearGradient lg = new LinearGradient(0, 0, 0, height,
                  new int[] { 
                      Color.parseColor("#feccb1"), 
                      Color.parseColor("#f17432"), 
                      Color.parseColor("#e86320"),
                      Color.parseColor("#f96e22") },
                  new float[] {
                      0, 0.50f, 0.50f, 1 },
                  Shader.TileMode.REPEAT);
               return lg;
          }
      };
  sd.setShaderFactory(sf);
  myBtn.setBackgroundDrawable(sd);
  </code></pre>
  
  <p>However I would like to add a <strong>shadow</strong> to the button, <strong>not the button text</strong> programmatically. Any help would be appreciated.</p>