我正在尝试使用其WallpaperService
类在Android中创建幻灯片。我正在使用Canvas
和Bitmap
来显示图片。我能够按顺序显示图像,但我无法找到一种方法,可以在图像变化时为图像添加淡入淡出效果。我知道如何在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);
}
此后我得到的只是黑屏。