我正在研究我的Android应用程序,但是我遇到的一个小问题是限制了它的功能。我正在使用Android画布在屏幕上绘制动画(用于动态壁纸),但每当我尝试使用Canvas.drawColor()
的颜色#01ffffff
进行绘图时(最后两位数字是alpha级别) ),画布变得更暗!怎么可能?我在画布上画了白色,虽然是非常透明的白色,但仍然是白色。怎么会变黑呢?
每帧都会画出颜色。它用于提供淡入淡出的白色动画,但不会淡化为白色。
我的代码:
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
。那么有谁知道为什么会发生这种情况以及我能做些什么来解决这个问题呢?谢谢! (并且代码中的任何语法错误,例如缺少括号,可能是由于我的复制和粘贴技巧不佳。)
答案 0 :(得分:0)
Android颜色资源定义为前两位数作为透明度值。这可能是你的问题(怀疑是零售编码器)。