繁体   English   中英

Android:使用线程和invalidate()平滑动画

[英]Android: smooth animation with thread and invalidate()

我目前正在尝试制作条形图的动画,条形根据值的变化而上下移动。

我使用单独的线程以20ms的刷新率处理图形,并使用postInvalidate()重绘视图。

我遇到的问题是在postInvalidate之后,onDraw并不总是立即被调用,因此动画不是很平滑。

我尝试过在每个onDraw()中使用固定的barsize值,并且还是动态的,这两种方法都不能产生真正平滑的动画,并且如果调用onDraw()花费的时间太长,则会导致“滞后”。

另外,我也尝试使用SurfaceView代替View也不成功。

无论如何有这种方法来创建平滑的动画吗? 还是我应该诉诸不同?

通常,我们不使用其他线程来处理动画步骤。 只需坚持使用动画框架提供的现有功能即可。

这是平滑缩放动画的示例:

    private static  class ZoomAnimation extends Animation {
        private float mFrom;
        private float mTo;
        private MyView mMyView;

        public ZoomAnimation(MyView v, float from, float to) {
            mFrom = from;
            mTo = to;
            mMyView = v;
            setDuration(160);
        }

        @Override
        protected void applyTransformation(float interpolatedTime, Transformation t) {
            float f = mFrom + ((mTo - mFrom) * interpolatedTime);
            mMyView.setPerformZoom(f);
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM