Android 스위치의 스타일을 어떻게 지정할 수 있습니까?
API 14에 도입 된 스위치 위젯은 기본적으로 holo 테마로 스타일이 지정됩니다. 브랜딩상의 이유로 색상과 모양을 약간 변경하여 스타일을 약간 다르게하고 싶습니다. 이것에 대해 어떻게 생각합니까? 기본 ICS와 삼성의 touchwiz 테마의 차이점을 보았을 때 가능해야한다는 것을 알고 있습니다.

상태 드로어 블이 필요하다고 가정하고 http://developer.android.com/reference/android/R.styleable.html 에서 Switch_thumb 및 Switch_track이 있는 몇 가지 스타일을 보았습니다. . 나는 그들을 사용하는 방법을 모른다.
차이가 나는 경우 ActionbarSherlock을 사용하고 있습니다. 물론 API v14 이상을 실행하는 장치 만 스위치를 사용할 수 있습니다.
배경에 사용되는 드로어 블과 스위처 파트를 다음과 같이 정의 할 수 있습니다.
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:thumb="@drawable/switch_thumb"
android:track="@drawable/switch_bg" />
이제 스위처 드로어 블의 다른 상태를 정의하는 선택기를 작성해야합니다. 다음은 Android 소스의 사본입니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_light" />
<item android:state_pressed="true" android:drawable="@drawable/switch_thumb_pressed_holo_light" />
<item android:state_checked="true" android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
배경 위로 이동 한 이미지 인 썸 드로어를 정의합니다. 슬라이더에 사용되는 네 가지 패치 이미지 가 있습니다 .
비활성화 된 버전 (Android에서 사용중인 xhdpi 버전) 
누른 슬라이더 : 
활성화 된 슬라이더 (켜짐 상태) : 
기본 버전 (꺼짐 상태) :
다음 선택기에서 정의 된 배경에는 세 가지 상태가 있습니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_bg_disabled_holo_dark" />
<item android:state_focused="true" android:drawable="@drawable/switch_bg_focused_holo_dark" />
<item android:drawable="@drawable/switch_bg_holo_dark" />
</selector>
비활성화 된 버전 : 
포커스 된 버전 : 
및 기본 버전 :
스타일이 지정된 스위치를 사용하려면이 두 선택기를 만들고 스위치보기로 설정 한 다음 7 개의 이미지를 원하는 스타일로 변경하십시오.
Janusz의 멋진 자세한 답변입니다. 그러나이 페이지에 오는 사람들을 위해 대답을 위해 더 쉬운 방법은 Android Asset Studio에서 링크 된 http://android-holo-colors.com/ (데드 링크)입니다
모든 도구에 대한 자세한 설명은 AndroidOnRocks.com (지금 오프라인 사이트)에 있습니다.
그러나 모든 사람들이 Janusz의 답변을 더 명확하게 이해할 수 있도록 읽을 것을 적극 권장합니다. 도구를 사용하여 물건을 빠르게 처리하십시오.
다른 색상 속성을 설정하여 재료 스타일을 사용자 정의 할 수 있습니다. 예를 들어 사용자 지정 응용 프로그램 테마
<style name="CustomAppTheme" parent="Theme.AppCompat">
<item name="android:textColorPrimaryDisableOnly">#00838f</item>
<item name="colorAccent">#e91e63</item>
</style>
커스텀 스위치 테마
<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch">
<item name="android:textColorPrimaryDisableOnly">#b71c1c</item>
<item name="android:colorControlActivated">#1b5e20</item>
<item name="android:colorForeground">#f57f17</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
</style>
xml 드로어 블을 정의하여 아래 이미지와 같이 스위치 트랙과 스위치 썸을 사용자 정의 할 수 있습니다 . 자세한 내용은 http://www.zoftino.com/android-switch-button-and-custom-switch-examples 를 참조하십시오 .
대안적이고 훨씬 쉬운 방법은 9 패치 대신 모양을 사용하는 것입니다. https://stackoverflow.com/a/24725831/512011에 이미 설명되어 있습니다.
참고 URL : https://stackoverflow.com/questions/10118050/how-can-i-style-an-android-switch
'IT story' 카테고리의 다른 글
| Xml 직렬화-null 값 숨기기 (0) | 2020.07.18 |
|---|---|
| 자체 중괄호 내부의 루프 (0) | 2020.07.18 |
| MySQL 뷰 목록을 얻는 방법? (0) | 2020.07.18 |
| int 숫자의 별도 숫자를 얻는 방법? (0) | 2020.07.18 |
| NSArray 딥 카피 (0) | 2020.07.18 |
