在Android动态壁纸中显示具有淡入淡出效果的图像

时间:2016-02-05 09:57:24

标签: android live-wallpaper

我正在尝试使用其WallpaperService类在Android中创建幻灯片。我正在使用CanvasBitmap来显示图片。我能够按顺序显示图像,但我无法找到一种方法,可以在图像变化时为图像添加淡入淡出效果。我知道如何在Android中为View设置动画,但我无法在Canvas上实现相同功能。我尝试在SO上寻找一个类似的问题并找到一个here,但如果答案是详细的,那就太棒了。

如果有人向我指出可以帮助我克服这个问题的消息来源,我将不胜感激。

修改

我将图像设置在Canvas上,如下所示:

在扩展WallpaperService.Engine的课程中,我执行以下操作:

@Override
    public void run() {
        SurfaceHolder holder = getSurfaceHolder();
        Canvas canvas = null;
        try {
            canvas = holder.lockCanvas();

            if (canvas != null) {
                canvas.drawColor(0, Mode.CLEAR);
                Bitmap bitmap = //get bitmap
                if (bitmap != null) {
                    paint.setAlpha(alpha);
                    if (alpha < 255 ) {
                        canvas.drawBitmap(bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), new Rect(0, 0, width, height), paint);
                        bitmap.eraseColor(Color.TRANSPARENT);
                        bitmap.recycle();
                    }
                    alpha+=1;
                }
            }
        } catch (IllegalStateException ignore) {
            ignore.printStackTrace();
        } finally {
            if (canvas != null) {
                holder.unlockCanvasAndPost(canvas);
            }
        }
        handler.removeCallbacks(this);
    }

此后我得到的只是黑屏。

0 个答案:

没有答案