2011-01-14 2 views
0

TabActivity의 Tab 표시기에 ImageViews를 사용하고 있습니다. 원본의 75 %로 조정 된 동일한 JPEG 파일의 사본이 2 개 있습니다. 내가 할 수 있기를 원하는 것은 선택을 위해 보통 크기를 사용하고 선택하지 않기 위해 작은 크기를 사용하는 것이다.TabView로 ImageView를 사용하여 선택/선택 취소 상태 처리

StateListDrawable은 ImageView에서 작동하지 않으므로 직접 처리해야합니다. 탭 선택 변경과 관련이있는 것으로 보이는 부분은 모두 TabHost.onTabChanged(String tabId)입니다. tabId가 new TabSpec(...)으로 전달 된 문자열이라고 가정합니다.

탭 변경 사항을 추적하는 유일한 방법입니까? 이전에 선택한 탭에서보기 상태를 변경하고 새 탭에서 동일한 작업을 수행 할 수있게하는 이벤트 핸들러 (또는 핸들러)가 있으면 유용합니다. 나는 int currentSelection과 같은 변수를 유지할 수 있지만 좀 더 자동화 될 수 있다면 유용 할 것입니다.

+0

"StateListDrawable이 ImageView에서 작동하지 않습니다."- 확인하십시오. – CommonsWare

+0

@CommonsWare : StateListDrawable에 'selector'를 정의하는 XML 파일을 사용할 때 ImageView의 setImageDrawable()을 사용하려고하면 ClassCastException이 발생합니다. 나는 그 하나와 함께 주위에서 뛰어 다니고 그것을 해결할 수 없었다. 당신이 나를 가리킬 수있는 샘플 코드에 대한 링크? – Squonk

+2

'setImageDrawable()'이 아니라'setImageResource()'를 사용하십시오. – CommonsWare

답변

1

해결책 : 내 이상적인 접근 방식은 ImageViews에서 StateListDrawables를 사용하는 것이었지만 상태 이미지를 정의하는 xml 파일과 함께 ImageView.setImageDrawable()을 사용하려고 시도 할 때 ClassCastException이 발생했습니다.

대신 대답은 setImageResource()를 사용하는 것입니다. 필요한 경우 완벽하게 작동합니다. 저를 올바른 방향으로 인도 해 주신 CommonsWare에게 감사드립니다.