我需要一个建议,为PictureDrawable
对象设置不透明度,因为setAlpha()
中没有实现PictureDrawable
。
我的情况与this one非常相似(我也使用库从原始资源中获取SVG的可绘制内容)。但我无法使用该解决方案,因为我想动态更改不透明度(而不是通过在创建时应用滤色器)。
在SurfaceView
上绘图时,上下文会为多个绘图设置动画。
在这种情况下,什么可能是一个好的解决方法?
谢谢。
答案 0 :(得分:0)
归功于@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();
This answer还为saveLayerAlpha()
用法提供了很好的指导。