在我当前的项目中,我需要迭代StateListDrawable中的每个子绘图。
在StateListDrawable.java的源代码中,我找到了一个方法:
public Drawable getStateDrawable(int index)
但是这个方法的注释是@hide,这意味着我不能使用它。
那么,有没有其他方法可以实现这一目标?
答案 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]);
}