How to set alpha value for drawable in a StateListDrawable?

萝らか妹 提交于 2019-12-05 10:44:52

This worked for me

  StateListDrawable drawable = new StateListDrawable();

  Bitmap enabledBitmap = ((BitmapDrawable)mIcon).getBitmap();

  // Setting alpha directly just didn't work, so we draw a new bitmap!
  Bitmap disabledBitmap = Bitmap.createBitmap(
      mIcon.getIntrinsicWidth(),
      mIcon.getIntrinsicHeight(), Config.ARGB_8888);
  Canvas canvas = new Canvas(disabledBitmap);

  Paint paint = new Paint();
  paint.setAlpha(126);
  canvas.drawBitmap(enabledBitmap, 0, 0, paint);

  BitmapDrawable disabled = new BitmapDrawable(mContext.getResources(), disabledBitmap);

  drawable.addState(new int[] { -android.R.attr.state_enabled}, disabled);
  drawable.addState(StateSet.WILD_CARD, mIcon);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!