2010-06-29 2 views
2

"선택기"를 사용하여 눌렀거나 초점을 맞춘 상태 등 다른 상태의 단추에 대해 다른 이미지를 지정할 때 각 단추에 대해 XML 파일을 작성해야합니까? 내 애플 리케이션에 약 15-20 버튼을 가지고, 그래서 단 하나의 XML을 작성하고 그것의 부분을 참조하는 방법이 있는지 궁금 해서요?Android ImageButton 선택기 - 버튼 당 하나의 XML?

감사 크리스

답변

1

적어도 내가 알고 있는데 그하는 StateListDrawable의 일부를 참조하는 방법은 없습니다.

그러나 일반적으로 StateListDrawables이 버튼 배경으로 사용되기 때문에 처음부터 둘 이상이 필요한 이유가 명확하지 않습니다.

+0

예를 들어,로드 버튼과 저장 버튼이 있습니다. 기본적으로 btn_load.png를 표시하고 btn_load_click.png는 누르거나 초점을 맞 춥니 다. 마찬가지로, 기본적으로 btn_save.png를 표시하고 btn_save_click.png는 눌렀거나 집중된 상태로 표시하려고합니다. load.xml과 save.xml을 별도로 만들고 loadButton과 saveButton에 지정해야합니까? – Chris

1

StateListDrawable은 런타임시 상태가 변경됨에 따라 현재 상태를 기반으로 Drawable을 변경합니다. Drawable을 처음 사용할 때 선택하는 것은 처음에 Drawable을 지정할 때 이미하는 일입니다.

LevelListDrawable과 같은 클래스조차도 실제 Drawable이 아닌 Drawable에 레벨을 지정해야합니다. 그리고 AFAIK Android는 Drawable이 상태를 처리 할 수 ​​있는지 여부를 자동으로 확인합니다. Drawable은 View the Drawable에 대한 참조를 사용하지 않습니다.

각 버튼에 대해 여러 개의 그리기 가능 파일을 만들뿐입니다. 텍스트 색상, 채우기, 글꼴 크기 등 Button의 특정 속성을 공유하려면 Android 스타일을 사용해야합니다.

Android 스타일을 사용하면 스타일을 상속 할 수있는 BlueButton, RedButton, GreenButton과 같은 스타일을 사용할 수 있습니다. 따라서 텍스트 색상, 텍스트 크기, 텍스트 그림자, 파란색 등의 드로어 블을 설정하는 BlueButton을 가질 수 있으며, BlueButton을 상속 한 Red의 또 다른 스타일을 만들고 드로어 블을 변경합니다 (원하는 속성을 변경할 수 있음). 그냥 단추 위젯에서 사용하십시오. 스타일을 연결할 여러 Drawable 파일이 필요하지만 스타일은 모두 하나의 파일에있을 수 있습니다.