在android中迭代StateListDrawable的子drawable

时间:2012-10-17 01:46:31

标签: android

在我当前的项目中,我需要迭代StateListDrawable中的每个子绘图。

在StateListDrawable.java的源代码中,我找到了一个方法:

public Drawable getStateDrawable(int index)

但是这个方法的注释是@hide,这意味着我不能使用它。

那么,有没有其他方法可以实现这一目标?

1 个答案:

答案 0 :(得分:3)

现在这是一个相当古老的问题,所以帮助你可能已经太晚了,但是为了找到它的其他人,我能够用这段代码做到这一点:

final DrawableContainer parentDrawable = (DrawableContainer) drawable;
final DrawableContainerState containerState = (DrawableContainerState) parentDrawable.getConstantState();
final Drawable[] children = containerState.getChildren();
for (int i = containerState.getChildCount(); i > 0; --i) {
    doStuff(children[i - 1]);
}