我的工作我的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