我有一个安卓游戏。我在触摸时更改颜色方案。代码是:
if(rect_dark.contains(x, y)) {
isdark = !isdark;
invalidate();
}
然后在我的onDraw方法中:
if(isdark){
this.setBackgroundColor(getResources().getColor(R.color.black_color));
} else{
this.setBackgroundColor(getResources().getColor(R.color.light_color));
}
if(isdark){
mScorePaint.setColor(getResources().getColor(R.color.light_color));
} else{
mScorePaint.setColor(getResources().getColor(R.color.black_color));
}
因此,当我按下按钮时,颜色的变化不同步。首先更改背景颜色,然后更改文本颜色。眼睛看到了。
如何处理这个问题? 谢谢你的所有答案。
答案 0 :(得分:3)
也许这会足够改善性能:
private int mCurrentColor;
if(rect_dark.contains(x, y)) {
isdark = !isdark;
if (isdark) {
mCurrentColor = getResources().getColor(R.color.dark_color);
} else {
mCurrentColor = getResources().getColor(R.color.light_color);
}
invalidate();
}
这避免了onDraw
方法中的颜色分配。如果这仍然不能令人满意,您可以尝试双缓冲,如上所述here。