인 스 턴 스 는 Android Selector 와 Shape 의 용법 을 자세히 설명 합 니 다.

6961 단어 androidselectorshape
shape 와 selector 는 Android UI 디자인 에서 자주 사용 되 는 것 입 니 다.예 를 들 어 우 리 는 원 각 Button 을 사용자 정의 하고 Button 을 누 르 면 효과 적 인 변화 가 있 으 면 shape 와 selector 를 사용 해 야 합 니 다.이렇게 말 하면 shape 와 selector 는 컨트롤 을 미화 하 는 데 중요 한 역할 을 한다.
1:Selector
drawable 의 item 에 다음 속성 이 있 습 니 다:
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_active=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"]

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_enabled="true" android:state_checked="true" android:state_pressed="true" 
android:drawable="@drawable/enabled_on_pressed" /> 
<item android:state_enabled="true" android:state_checked="false" android:state_pressed="true" 
android:drawable="@drawable/enabled_off_pressed" /> 
<item android:state_enabled="true" android:state_checked="true" 
android:drawable="@drawable/enabled_on" /> 
<item android:state_enabled="true" android:state_checked="false" 
android:drawable="@drawable/enabled_off" /> 
<item android:state_enabled="false" android:state_checked="true" 
android:drawable="@drawable/disabled_on" /> 
<item android:state_enabled="false" android:state_checked="false" 
android:drawable="@drawable/disabled_off" /> 
</selector> 
Item 순 서 는 중요 한 것 이 고 조건 이 한정 되 어 있 을 수록 앞 에 놓 아야 한다.예 를 들 어 여기 서 1,2 줄 과 3,4 줄 의 item 을 교환 하면 pressed 는 영원히 촉발 할 수 없습니다.item 이 조건 을 만족 시 켜 되 돌 아 왔 기 때 문 입 니 다.코드 에 있 는 if 문장 으로 이해 할 수 있 습 니 다.
 
2:Shape

<shape> 
<!--    --> 
<solid android:color="#ff9d77"/> 
<!--    --> 
<gradient 
android:startColor="#ff8c00" 
android:endColor="#FFFFFF" 
android:angle="270" /> 
<!--    --> 
<stroke 
android:width="2dp" 
android:color="#dcdcdc" /> 
<!--    --> 
<corners 
android:radius="2dp" /> 
<padding 
android:left="10dp" 
android:top="10dp" 
android:right="10dp" 
android:bottom="10dp" /> 
</shape> 
솔 리드
android:color 채 울 색 지정
gradient:그 라 데 이 션
android:startColor 와 android:endColor 는 각각 시작 과 끝 색 입 니 다.ndroid:angle 은 그 라 데 이 션 각도 이 고 45 의 정수 배 여야 합 니 다.
또한 그 라 데 이 션 기본 모드 는 android:type="linear",즉 선형 그 라 데 이 션 입 니 다.그 라 데 이 션 을 직경 방향 그 라 데 이 션 으로 지정 할 수 있 습 니 다.android:type="radial",직경 방향 그 라 데 이 션 은 반경 android:gradientRadius="50"을 지정 해 야 합 니 다.
stroke:테두리 그리 기
android:width="2dp"테두리 의 너비,android:color 테두리 의 색.
우 리 는 또한 테 두 리 를 점선 으로 그 리 는 형식 으로 설정 할 수 있다.설정 방식 은 다음 과 같다.
android:dashWidth="5dp"
android:dashGap="3dp"
그 중에서 안 드 로 이 드:dashWidth 는'-'와 같은 횡선 의 너 비 를 나타 내 고 안 드 로 이 드:dashGap 은 사이 의 거 리 를 나타 낸다.
코너:원 각
android:radius 는 각 의 라디안 으로 값 이 클 수록 각 이 둥 글 어 집 니 다.
우 리 는 또 네 개의 각 을 다른 각도 로 설정 할 수 있다.방법 은:

<corners 
android:topRightRadius="20dp"    
android:bottomLeftRadius="20dp"    
android:topLeftRadius="1dp"    
android:bottomRightRadius="0dp"    
/>
여기 주의 할 점 이 있 습 니 다.bottom Left Radius 는 왼쪽 아래 가 아니 라 오른쪽 아래 입 니 다.이것 은 좀 답답 하지만 사용 에 영향 을 주지 않 습 니 다.잘못 생각 하지 마 세 요.
그리고 인터넷 에서 0dp 로 설정 하면 무효 라 고 하 는 사람 을 보 았 습 니 다.그런데 테스트 에서 괜 찮 은 것 을 발 견 했 습 니 다.제 가 사용 한 것 은 2.2 입 니 다.이 문 제 를 복 구 했 을 수도 있 습 니 다.무효 라면 1dp 로 설정 할 수 밖 에 없습니다.
padding:간격
button_selector.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" > 
<shape> 
<!--    --> 
<gradient 
android:startColor="#ff8c00" 
android:endColor="#FFFFFF" 
android:type="radial" 
android:gradientRadius="50" /> 
<!--    --> 
<stroke 
android:width="2dp" 
android:color="#dcdcdc" 
android:dashWidth="5dp" 
android:dashGap="3dp" /> 
<!--    --> 
<corners 
android:radius="2dp" /> 
<padding 
android:left="10dp" 
android:top="10dp" 
android:right="10dp" 
android:bottom="10dp" /> 
</shape> 
</item> 
<item android:state_focused="true" > 
<shape> 
<gradient 
android:startColor="#ffc2b7" 
android:endColor="#ffc2b7" 
android:angle="270" /> 
<stroke 
android:width="2dp" 
android:color="#dcdcdc" /> 
<corners 
android:radius="2dp" /> 
<padding 
android:left="10dp" 
android:top="10dp" 
android:right="10dp" 
android:bottom="10dp" /> 
</shape> 
</item> 
<item> 
<shape> 
<solid android:color="#ff9d77"/> 
<stroke 
android:width="2dp" 
android:color="#fad3cf" /> 
<corners 
android:topRightRadius="5dp" 
android:bottomLeftRadius="5dp" 
android:topLeftRadius="0dp" 
android:bottomRightRadius="0dp" 
/> 
<padding 
android:left="10dp" 
android:top="10dp" 
android:right="10dp" 
android:bottom="10dp" /> 
</shape> 
</item> 
</selector> 
다음 그림 과 같이 실행 효과:
일반 상태:

초점 상태 획득:

누 른 상태:

위 에서 말 한 것 은 소 편 이 여러분 에 게 공유 하 는 실례 입 니 다.Android Selector 와 Shape 의 용법 을 자세히 설명 합 니 다.

좋은 웹페이지 즐겨찾기