Android 사용자 정의 속성

4921 단어 android
참고 블 로그: 홍 양 선생님 블 로그http://blog.csdn.net/lmj623565791/article/details/45022631
1. 사용자 정의 절차:
a. ArcMenu extends View Group 사용자 정의;
b. values / attr. xml 에서 속성 을 정의 하고 stylable 과 item 속성 을 정의 합 니 다.
 <!--    -->
    <attr name="position">
        <enum name="left_top" value="0" />
        <enum name="left_bottom" value="1" />
        <enum name="right_top" value="2" />
        <enum name="right_bottom" value="3" />
    </attr>

    <!--    -->
    <attr name="radius" format="dimension"/>

    <declare-styleable name="ArcMenu">
        <attr name="position"/>
        <attr name="radius"/>
    </declare-styleable>

그 중에서 format 는 radius 에 대응 하 는 수치 유형 입 니 다. 흔히 볼 수 있 는 format 의 수치 유형 은 string, color, integer, enum, demension, reference, fraction, float, boolean, flag 입 니 다.declare - styleable 의 이름 은 일반적으로 사용자 정의 컨트롤 이름 으로 name = "ArcMenu" 입 니 다.
c. 레이아웃 파일 에서 사용자 정의 속성 을 사용 하려 면 네 임 스페이스 를 다시 정의 하 는 것 에 주의해 야 합 니 다.
//    
xmlns:keke="http://schemas.android.com/apk/res-auto"

 <com.best.keke.arcmenu.view.ArcMenu
        android:id="@+id/arcmenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        keke:position="right_bottom"
        keke:radius="180dp">
  </com.best.keke.arcmenu.view.ArcMenu>

d. ArcMenu 의 구조 방법 에서 TypedArray 를 통 해 값 을 얻 을 수 있 습 니 다.
 public ArcMenu(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        //           
        TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.ArcMenu, defStyleAttr, 0);

        int pos = typedArray.getInt(R.styleable.ArcMenu_position, POS_RIGHT_BOTTOM);
         typedArray.recycle();
    }

좋은 웹페이지 즐겨찾기