Независимо от того, каким образом я создаю, устанавливаю его альфу или назначаю рисуемый объект DividerItemDecoration
в моем RecyclerView
, рисуемый объект всегда отображается полностью непрозрачным в моем представлении. Почему это так и как я могу сделать мой разделитель прозрачным?
Я просмотрел источник для DividerItemDecoration
и нигде не нашел, что частное поле mDivider
имеет альфа-модификацию. Он вызывает mDivider.draw(canvas)
, чей комментарий к методу гласит: «Рисовать в его границах (устанавливается с помощью setBounds) учитывая дополнительные эффекты, такие как альфа-канал (устанавливается с помощью setAlpha) и цветовой фильтр (устанавливается с помощью setColorFilter )".
Я попытался создать Drawable
в виде формы XML с прозрачным цветом. Я попытался создать Drawable
как однопиксельный PNG. Я попытался программно установить альфу на Drawable
с помощью setAlpha()
. Я попытался программно присвоить Drawable
DividerItemDecoration
с помощью setDrawable()
. Я пытался назначить Drawable
в теме с @android:attr/listDivider
. Все эти методы дают один и тот же результат. Drawable
становится полностью непрозрачным.
setAlpha
отлично работает:DividerItemDecoration decor = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL); Drawable dr = getResources().getDrawable(R.drawable.chrome); dr.setAlpha(32); decor.setDrawable(dr); rv.addItemDecoration(decor);
- person pskink   schedule 31.08.2018