마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Switch의 track의 높이를 바꾸고 싶어요. [closed]

0 추천

이게 제가 원하는 스타일이에요. 

thumb는 그냥 이미지 drawable  넣으니까 바뀌는데, 뒤에 track은 on일 때 녹색, off일 때 회색으로 하고 싶어요

 

 

// bg_switch_track_on.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="#f00"/>
    <corners android:radius="10dp"/>
    <size
        android:width="30dp"
        android:height="1dp"/>
</shape>

 

// bg_switch_track_off.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ff0"/>
    <corners android:radius="10dp"/>
    <size
        android:width="30dp"
        android:height="1dp"/>
</shape>

 

// bg_switch_track.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bg_switch_track_off" android:state_checked="false"/>
    <item android:drawable="@drawable/bg_switch_track_on" android:state_checked="true"/>
</selector>

 

// activity_main.xml
<Switch
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:track="@drawable/bg_switch_track"/>

 

이렇게하면 

이렇게 됩니다.

 

size가 안 먹히는데, 다른 방법이 있나요?

 

상관이 있을지는 모르겠지만, api는 22 전용이고, LG G4에서 개발하고 있어요.

질문을 종료한 이유: 기획자와 디자이너가 잘 협의해서 디자인을 바꾸는 걸로 마무리했습니다.
쎄미 (162,410 포인트) 님이 2015년 5월 30일 질문
쎄미님이 2015년 6월 3일 closed
shape를 line으로 주고, stroke의 width를 조절해서 쓰는걸로 확정했습니다.

2개의 답변

0 추천

제가 확인하진 않았는데   xml 을 봤을때

<corners android:radius="10dp"/>

으로 되어 있내요.

높이는 1인데 끝점의 코너모양의 반지름은 10dp 이네요.

이 부분을 확인해보셨으면 합니다.

컴러기 (22,230 포인트) 님이 2015년 5월 30일 답변
corners는 말 그대로 코너의 둥그스름한 것만 담당하네요. 1로 바꿔도, 아예 없애도 높이가 달라지지는 않아요.
아 죄송합니다 저부분이랑은 크게 상관이 없는 듯 합니다.
shape  을 그려넣으실 때 View의 상태에 따라서 달라지는 것 같습니다.
제가 이미지 뷰에서 확인한 결과 scaleType 의 상태에 따라서 크기를 자동 조절하는 것 같습니다.
특히  설정하지 않았을 때도 자동조절이 일어나는 것 같습니다.
seekbar는 scale type이 없어서...
0 추천

시크바시라면 custom seekbar 로 검색하면 잘나올껀데요.

http://stackoverflow.com/questions/16163215/android-styling-seek-bar

여기 잘 설명되어 있내요

컴러기 (22,230 포인트) 님이 2015년 5월 30일 답변
shape를 line으로 주고, stroke의 width를 늘리니까 두께는 그럭저럭 되는데, 이거는 테두리가 각지게 밖에 안되네요....
쎄미님 조금 늦엇지만 여기 이분 게시물을 한번 보세요.
다양한  seekbar관련 예제를 모아 두셨내요
http://202psj.tistory.com/212
4년 전에는 됐을 것 같은데, 지금은 적용이 안되나 봐요...
...