我的工作我的Android应用程序,但我在被限制了其功能的小问题。我使用了android画布绘制的动画在屏幕上(一个活的壁纸),但每当我尝试使用Canvas.drawColor()
与像#01ffffff
颜色(最后两位数字是α水平),在画布变暗图纸!怎么可能?我在画布上画白色,虽然是非常透明的白色,但仍然是白色。它怎么会变得越来越黑暗?在Android画布绘制白色帆布做暗
的颜色越来越绘制每一帧。它用于为白色动画提供淡入淡出效果,但不会淡入白色。
我的代码:
public class MyWallpaperService extends WallpaperService {
...
private void draw() {
handler.removeCallbacks(drawRunner);
SurfaceHolder holder = getSurfaceHolder();
Canvas canvas = null;
if (holder.getSurface().isValid()) {
if (visible) {
handler.postDelayed(drawRunner, refreshRate);
}
try {
canvas = holder.lockCanvas();
if (canvas != null) {
canvas.drawColor(backgroundColor);
}
} finally {
if (canvas != null)
try{
holder.unlockCanvasAndPost(canvas);
} catch (Exception e) {
e.printStackTrace();
}
}
}
...
}
的draw()
方法是用来绘制我的墙纸,屏幕和内它必须canvas.drawColor()
通话。命名backgroundColor
变量初始化为颜色#01ffffff
。所以有人知道为什么会发生这种情况,我能做些什么来解决这个问题?谢谢! (而在代码中的任何语法错误,如缺少括号,可能是由于我那可怜的复制和粘贴技巧。)
不适合的颜色的alpha值*第一*两个数字?至少这就是'Color.FromArgb()'在c#中的工作方式......这会给你一个蓝色的白色?对不起,不熟悉JavaScript。这是JavaScript的权利? –
对不起,这不是问题。当我写这些时,我在想#rrggbbaa。在实际定义颜色的代码中,它首先用alpha来正确定义它。谢谢,不过。它是Java。 – CoderOfHonor