gpt4 book ai didi

Android表面 View 动画

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:03:37 26 4
gpt4 key购买 nike

我正在尝试在表面 View 上实现动画。但是,我的 surfaceview 的背景是透明的,我无法清除最后一帧的像素。我可以在透明的surfaceview上实现一些动画吗?也许我只在 View 上使用“动画”类。谢谢!


可能我没有把问题描述清楚。我想实现一个动画,但是surfaceview无法刷新上一个图,看起来像图片。

enter image description here

背景是透明的。我知道用颜色绘制 Canvas 可以清除最后绘制的图形。但是它的背景是透明的,该方法没有实现刷新。请帮我。谢谢!

最佳答案

看下面的代码,它对我有用:

Paint clearPaint = new Paint();

public MySurfaceView(Context context, AttributeSet attrs) {
super(context, attrs);

this.setZOrderOnTop(true);
this.getHolder().setFormat(PixelFormat.TRANSPARENT);
clearPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}

public void drawMethod(){
Canvas canvas = this.getHolder().lockCanvas();

canvas.drawPaint(clearPaint);

canvas.drawBitmap(yourBitmap, null, yourBitmapRect, null);

this.getHolder().unlockCanvasAndPost(canvas);
}

您必须将 SurfaceView 按 Z 顺序放在顶部并将 PixelFormat 设置为透明。这将使您的 SurfaceView 透明(这部分您已经完成,如您所写)。然后你必须在每次新绘图之前用透明涂料填充你的表面。这种“特殊”油漆需要像这样设置:

clearPaint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));

关于Android表面 View 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398849/

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