android: shape 의 사용

6631 단어 android
본문http://dev.10086.cn/cmdn/wiki/index.php?doc- view - 6087. html, 특별히 성명 합 니 다!
프로젝트 의 미 화 는 매우 중요 한 단계 입 니 다. 비록 많은 경우 에 우 리 는 그림 을 통 해 각종 효 과 를 완성 할 수 있 지만 안 드 로 이 드 가 우리 에 게 그렇게 강력 한 xml 인터페이스 편집 기능 을 제공 했다 고 생각 합 니 다. 아 쉬 울 필요 가 없습니다. 오늘 마침 안 드 로 이 드: shap 을 사용 하여 여러분 께 말씀 드 리 겠 습 니 다.
먼저 아래 코드 를 보십시오.

    <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: 간격
이것 은 더 이상 말 할 필요 가 없습니다. XML 레이아웃 파일 에 자주 사 용 됩 니 다.
대체적으로 이렇다. 다음은 사용 하 는 구체 적 인 예 이다. Selector 에서 Button 의 배경 으로 단추 의 일반 상태, 초점 상태 와 눌 렀 을 때의 상 태 를 정의 했다. 구체 적 인 코드 는 다음 과 같다.
main.xml:

    <Button  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="TestShapeButton"  
        android:background="@drawable/button_selector"  
        />  
    > 

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>  

좋은 웹페이지 즐겨찾기