在Android中迭代StateListDrawable的子Drawable

5
在我的当前项目中,我需要迭代StateListDrawable中的每个子Drawable。
在StateListDrawable.java的源代码中,我找到了一个方法: public Drawable getStateDrawable(int index)
但是这个方法的注释是@hide,这意味着我不能使用它。
那么,有没有其他的方法可以实现这个目标?
1个回答

5

这是一个相对比较久远的问题,所以可能已经来不及帮到您了,但考虑到其他人可能会浏览到这个问题,我能够通过以下代码实现:

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]);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接