【问题标题】:How do you tint a bitmap in Android?如何在 Android 中为位图着色?
【发布时间】:2011-03-30 18:29:52
【问题描述】:

我使用以下调用在画布上绘制位图:

_playerImage = BitmapFactory.decodeResource(getResources(), R.drawable.player);

我现在如何将此图像着色为白色? 当敌人被子弹击中时,我正在尝试使图像像在顶部滚动条中一样闪烁白色。

我需要使用 BitmapFactory 以外的东西吗?

【问题讨论】:

    标签: android image bitmap


    【解决方案1】:

    绘制位图时,您可以在Paint 上使用ColorFilter

    【讨论】:

    • 太棒了!万分感谢! "Paint p = new Paint(Color.RED); ColorFilter filter = new LightingColorFilter(Color.RED, 1); p.setColorFilter(filter);"
    • 您好 Romain,是否有任何绘制着色位图的方法不涉及为每个绘制调用创建新的 ColorFilter 实例?假设您有 100 个精灵想要用不同的颜色着色。这将需要为每个 drawBitmap 调用一个新的 lightingColorFilter。这确实与“不要在渲染调用中分配”的整个项目黄油理念相吻合。特别是因为着色与混合/调制 opengl 后端直接相关,不需要分配任何对象。调用 drawBitmap(..., int mul, int add) 怎么样?
    • @P.Melch 好问题(这真的很老了,但我把它放在这里是因为它是相关的,其他人可能会觉得它有用)......如果你有一组相对较少的颜色,您可以保留几个 ColorFilter 对象的实例(可能使用池),因为 LightingColorFilter 似乎不支持更改其颜色。如果有人有更好的想法,那肯定会有所帮助。
    • 如何使用绘画对象在颜色上填充颜色?
    • 注意:FoppyOmega 的代码 sn-p 应该是“Paint p = new Paint();”。 Paint 构造函数的可选 int 参数是不是颜色。我坚持了一段时间,因为它编译得很好:/。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2015-12-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多