【问题标题】:Android draw transparencyAndroid绘制透明度
【发布时间】:2013-02-22 08:04:52
【问题描述】:

我是 Android(以及 Java)的新手,我正在制作一个简单的游戏。我被卡住了。

我的问题是这样的:

我有 2 张 png 图像(背景和前景)在启动时占据了整个屏幕。我现在希望能够将前景的“绘制部分”的宽度设置为 ON_DRAG 的 x 坐标。我的控制方法效果很好;它是这样使用的:

g.drawRect(0, 0, scene.getLine(), g.getHeight(), Color.GREEN);

scene.getLine() 返回触摸的 x 值。所以此时我可以在我的图像上方绘制一个绿色矩形。但我真正想要的是让这些矩形尺寸在我的顶层 png 中“打一个洞”(这样背景就会显示在下面)。我不想缩放前景。

我尝试过 clipRect,但它不起作用,因为我还有其他图像需要在这两个之上绘制,而 clipRect 阻止了这种情况。我查看了一堆“PorterDuffXfermode”代码,但无法理解如何将其应用于我的情况,并且无法使其工作。即我可以使用 PorterDuff“SRC”模式集进行绘画,但我不知道如何定义“源”和“目标”图像,因此绘画将发挥其魔力。最后一个考虑因素是,即使 PorterDuff 可以工作,我不确定它是否实用,因为我希望这个东西以 60fps 运行。

有什么建议吗?

谢谢。

【问题讨论】:

    标签: android graphics transparency


    【解决方案1】:

    您可以在剪辑之前调用canvas.save(),在绘图之后调用canvas.restore(),将画布恢复到您凝视之前的状态。然后您可以绘制其他图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2018-04-02
      • 2011-04-27
      • 2013-07-09
      相关资源
      最近更新 更多