首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓动画ShapeDrawable

安卓动画ShapeDrawable
EN

Stack Overflow用户
提问于 2012-04-16 21:26:01
回答 1查看 414关注 0票数 1

我正在尝试编写基于ShapeDrawable类的动画Drawable,使用一些特定的基于Shape的类来绘制其内容。

根据需要,基于Shape的类中的一些值应该被更改,并且应该根据这些值进行更改(类似于一定范围内的温度变化)。整件事都是为Android 2.1编写的。我发现,为我的ShapeDrawable调用invalidateSelf()应该没问题,但我必须为它提供Drawable.Callback

问题是,在Drawable.Callback接口的invalidateDrawable( Drawable who )方法中应该提供什么?使用这种方法的一些示例:

代码语言:javascript
复制
class MyShapeDrawable extends ShapeDrawable implements Drawable.Callback
{
    public void invalidateDrawable( Drawable who ) {
    }

    public void scheduleDrawable(Drawable who, Runnable what, long when) {
    }

    public void unscheduleDrawable(Drawable who, Runnable what) {
    }
}

当我为我的基于ShapeDrawable的类调用invalidateSelf()时,会调用invalidateDrawable()方法,但是在这个方法中应该做什么呢?如何强制更新和重绘我的Shape

EN

回答 1

Stack Overflow用户

发布于 2012-06-08 06:44:54

这是View.java的安卓源代码中的实现。

代码语言:javascript
复制
public void invalidateDrawable(Drawable drawable) {
    if (verifyDrawable(drawable)) {
        final Rect dirty = drawable.getBounds();
        final int scrollX = mScrollX;
        final int scrollY = mScrollY;

        invalidate(dirty.left + scrollX, dirty.top + scrollY,
                dirty.right + scrollX, dirty.bottom + scrollY);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10175038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档