Установите непрозрачность PictureDrawable
Мне нужен совет с настройкой непрозрачности на PictureDrawable
объект, так как обычно setAlpha()
не реализован в PictureDrawable
, Мой случай очень похож на этот (я также получаю свои отрисовки из SVG в сырых ресурсах, используя библиотеку). Но я не могу использовать решение, потому что я хотел бы динамически изменять прозрачность (не применяя цветной фильтр при создании).
Контекст анимирует несколько рисованных элементов при рисовании на SurfaceView
,
Что может быть хорошим обходным путем в этой ситуации?
Спасибо.
1 ответ
Кредит идет на @pskink, я просто уточню это для дальнейших ссылок. Это то, что я делаю в onDraw(Canvas canvas)
метод (в моем случае int opacity
итеративно изменяется от 0 до 255):
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
canvas.saveLayerAlpha(x, y, x + width, y + height, opacity,
Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
drawable.setBounds(x, y, x + width, y + height);
drawable.draw(canvas);
canvas.restore();
Этот ответ также дает хорошее руководство по saveLayerAlpha()
использование.