我有自定义字段和音量滑块(只是颜色线), 我想更新触控板运动上的滑块,还有其他一些方法 然后调用invalidate?因为这对我来说真的很慢, 尝试也只使区域无效,但结果相同。那是有的 某种方式如何重绘部分字段而没有无效?
protected boolean navigationMovement(int dx, int dy, int status, int time) {
if (dx >0) {
if (value < maxValue) {
value++;
invalidate(xPosSlider + value*sliderStep, getHeight()/2 - SLIDER_HEIGHT/2, sliderStep, SLIDER_HEIGHT);
return true;
}
} else if (dx < 0) {
if (value > 0) {
value--;
invalidate();
return true;
}
}
return super.navigationMovement(dx, dy, status, time);
}
答案 0 :(得分:1)
首先要看的是您自己的代码。你是否在偶数线程上做了一些耗时的工作,以防止油漆操作及时发生?这可能是个问题。
否则,您可以尝试calling the paint method directly as shown here。但是,最好的解决方案是确保您的事件线程不会完成应该在单独线程上完成的工作。