我在我的游戏中使用了SVG文件,我想为它们添加透明度和亮度效果。所以我想要的是一个精灵变得越来越透明,直到它不可见为止。这看起来比刚刚消失的精灵要平滑得多。这还允许在白色屏幕变得不太透明然后再增加更多的级别之间平滑过渡。我希望你明白我的意思。除此之外,亮度效果也不错。在游戏中,精灵可以变亮或变暗。不过,我可以使用透明效果为此创建一个解决方法,但是,是的,我什么都没有:/
我使用这个库:
https://androidsvg.googlecode.com/hg/doc/reference/packages.html
我以这种方式渲染我的svg:
svg.renderToCanvas(pCanvas);
但是我也可以将其转换为图片:
Picture pic = svg.renderToPicture();
也许这些信息会对您有所帮助。
有什么可以帮助我的吗?如果没有,您是否知道如何解决该问题?
编辑:所以我的SVG的行为就像这些:
http://scratch.mit.edu/projects/24634091/
最佳答案
正如Frank所说,您可以使用ImageView和setAlpha()。或者,可能更容易在draw()方法中将精灵渲染到画布上。
如果您正在编写游戏,则可能会发现在游戏循环中渲染SVG可能不够快。因此,您可能必须将所有SVG精灵预先渲染到位图(即在启动时)并将它们绘制到Canvas。
Paint p = new Paint();
p.setAlpha(alpha);
canvas.drawBitmap(sprite, x,y, p);
关于java - svg亮度/透明度效果和滤镜(Java Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24715961/