gpt4 book ai didi

java - 如何在 Android 中使用 Canvas 为位图的不透明度设置动画?

转载 作者:太空狗 更新时间:2023-10-29 15:23:09 25 4
gpt4 key购买 nike

我是 Android 编程的新手。我正在尝试在 Android 中使用 Canvas 创建位图图像的动画。我正在使用 setAlpha() 来控制位图的不透明度。我的 drawFrame() 方法包括以下位:

c = holder.lockCanvas();  
drawScene(c, paint);
holder.unlockCanvasAndPost(c);

我的 drawScene() 包括这个位:

Paint transparencyValue = new Paint();  
transparencyValue.setAlpha(paint);
canvas.drawBitmap(boom.getImage(), logoToBoom.getX(), logoToBoom.getY(),
transparencyValue);

我想我必须插入一个循环来修改 paint 从 0 到 255 并返回。到目前为止它还没有奏效,但我可能做错了什么。任何人都可以推荐一些东西吗?

编辑:这是我的Runnable 代码。 paint 是一个设置为 255 的 private doubleboom_activated 是一个变为 trueboolean > 如果 onTouchEvent 启用了它。它应该保持 true,直到 Runnable 禁用它 (setBoomState(false);)。由于某种原因,它仍然没有在不透明度降低的情况下绘制位图。下面的代码是否有效,还是我遗漏了什么?

    private final Runnable DrawSceneThread = new Runnable() {
public void run() {
if (boom_activated && paint <= 0) {
paint = 0;
drawFrame();
setBoomState(false);
paint = 255;
} else if (boom_activated && paint >= 0) {
drawFrame();
paint -= 0.7;
} else {
drawFrame();
}`

在我的 drawScene() 中我有这一行:
scene_handler.postDelayed(DrawSceneThread, 25);

最佳答案

您需要做的是随着时间的推移为不透明度值设置动画。您需要使用处理程序来更新 alpha 值,然后在 onDraw 函数中绘制位图。查看本教程以更好地了解如何通过处理程序更新 UI:http://developer.android.com/resources/articles/timed-ui-updates.html

关于java - 如何在 Android 中使用 Canvas 为位图的不透明度设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5397896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com