Я работаю над своим андроидным приложением, но есть небольшая проблема, с которой я сталкиваюсь, что ограничивает ее функциональность. Я использую андроид-холст для рисования анимации на экране (для живых обоев), но всякий раз, когда я пытаюсь рисовать, используя Canvas.drawColor()
с цветом, например #01ffffff
(последние две цифры являются альфа-уровнем), холст становится темнее! Как это может быть? Я белую над холстом, хотя и очень прозрачный белый, но все же белый. Как это может стать темнее?Рисование белым на холсте андроида делает холст темнее
Цвет рисуется каждый кадр. Он используется для обеспечения постепенного перехода к белой анимации, но он не исчезает до белого.
Мой код:
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
. Так кто-нибудь знает, почему это происходит, и что я могу сделать, чтобы исправить это? Благодаря! (И любые синтаксические ошибки в коде, такие как отсутствующие скобки, вероятно, связаны с моими плохими навыками копирования и вставки.)
Не первые * две цифры для альфа-цвета? По крайней мере, так работает 'Color.FromArgb()' в C# ..., что даст вам сине-белый белый цвет? Извините, не знакомы с javascript. Это правильно javascript? –
Извините, это не проблема. Когда я это написал, я думал: #rrggbbaa. В коде, который фактически определяет цвет, он правильно определяет его с альфой. Спасибо хоть. И это Java. – CoderOfHonor