我从头开始创建了一个自定义视图。扩展了View
并覆盖了onDraw()
方法。
在进行视图动画时,我使用偏移量生成了自定义动画。
例如:
while(!isOnTop){
mOffset++;
//draw the component a a it higher using the offset
if(position == 0)
isOnTop==true;
invalidate();
}
思路是我的框架来自于invalidate本身。问题在于,这个视图的无效化可以通过在同一屏幕上滚动listview来实现。
这种“共享的无效化”会导致我的动画延迟。那么有没有什么方法可以避免这种延迟呢?
您有没有其他关于在共享环境中执行动画的建议?使用单独的线程创建动画并计算偏移量也需要强制无效化()调用才能显示动画(如果我说错了,请纠正我)。
唯一的解决方案是通过10次无效请求执行动画,并且步长更大吗?这将缓解延迟,但我认为我可以采用不同的方法来解决这个问题。