title: How to set alpha value for drawable in a StateListDrawable?
body: <p>I want to change a drawable's alpha value when it is pressed.
  So I create two drawables and put them in a StateListDrawable and set the alpha value for the pressed state. But it just doesn't work.</p>
  
  <pre><code>StateListDrawable content = new StateListDrawable();
  Drawable contentSelected = this.getResources().getDrawable(
  R.drawable.content_background);
  contentSelected.mutate().setAlpha(100);
  
  Drawable contentNormal = this.getResources().getDrawable(R.drawable.content_background);
  
  content.addState(new int[] { android.R.attr.state_pressed }, contentSelected);
  content.addState(new int[] { android.R.attr.state_enabled }, contentNormal);
  
  ImageButton button = (ImageButton) view.findViewById(R.id.content_thumbnail);
  button.setImageDrawable(content);
  </code></pre>
  
  <p><strong>Update</strong>:
  My final solution is to create a subclass of BitmapDrawable like this,
  and change the alpha value in the <code>onStateChange()</code> method.</p>
  
  <pre><code>public AlphaAnimatedDrawable(Resources res, Bitmap bitmap) {
      super(res, bitmap);
      this.setState(new int[] { android.R.attr.state_pressed, android.R.attr.state_selected,
              android.R.attr.state_enabled });
  }
  
  private static final int PRESSED_ALPHA = 180;
  private static final int REGULAR_ALPHA = 255;
  
  @Override
  protected boolean onStateChange(int[] states) {
  
      for (int state : states) {
          if (state == android.R.attr.state_pressed) {
              setAlpha(PRESSED_ALPHA);
          } else if (state == android.R.attr.state_selected) {
              setAlpha(REGULAR_ALPHA);
          } else if (state == android.R.attr.state_enabled) {
              setAlpha(REGULAR_ALPHA);
          }
      }
      return true;
  }
  </code></pre>