본문 바로가기
안드로이드

[안드로이드] StateListDrawable에서 Drawable 가져오기

by 호군 2011. 8. 31.
반응형
StateListDrawable에서 각 상태에 따른 Drawable을 가져올 수 없습니다.
각 상태를 가져올 수 있는 메소드가 @hide로 숨겨져 있거나 패키지 내에서만 사용이 가능하기 되어있습니다.
하지만 상태를 알 수 없지만 Drawable의 목록은 가져올 수 있습니다.
아래는 간단한 예제코드 입니다. 
구현하실 때는 instanceof 키워드로 검증을 하시고, 예외처리 등을 하셔서 사용해야합니다.

StateListDrawable stateDrawable = (StateListDrawable)drawable;
DrawableContainerState containerState = (DrawableContainerState)stateDrawable.getConstantState();
Drawable[] drawables = containerState.getChildren();

만약 xml에서 자신만의 옵션을 설정 할 수 있게 했을 때, 그 옵션이 Drawable 타입을 받는 것일 경우 사용 될 수 있습니다. 하지만 각 상태를 알 수 없기 때문에 index에 의한 약속을 해야겠지요.

만약 각 상태값과 그에 맞는 Drawable을 구하는 방법을 아시는 분은 댓글 부탁들입니다.
반응형