인 스 턴 스 는 Android Selector 와 Shape 의 용법 을 자세히 설명 합 니 다.
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 의 용법 을 자세히 설명 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.