예. 짧은 가이드 :
1. 속성 XML 만들기
/res/values/attrs.xml
속성과 유형을 사용하여 내부에 새 XML 파일을 만듭니다.
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<declare-styleable name="MyCustomElement">
<attr name="distanceExample" format="dimension"/>
</declare-styleable>
</resources>
기본적으로 <declare-styleable />
모든 사용자 정의 속성 (여기서는 하나만)을 포함하는보기에 대해 하나를 설정해야 합니다. 가능한 유형의 전체 목록을 찾지 못 했으므로 소스를 살펴보아야합니다. 내가 아는 유형은 참조 (다른 리소스에 대한), 색상, 부울, 차원, 부동 소수점, 정수 및 문자열입니다. 입니다. 꽤 자명하다
2. 레이아웃에서 속성 사용
한 가지를 제외하고는 위에서했던 것과 동일한 방식으로 작동합니다. 사용자 정의 속성에는 고유 한 XML 네임 스페이스가 필요합니다.
<com.example.yourpackage.MyCustomElement
xmlns:customNS="http://schemas.android.com/apk/res/com.example.yourpackage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Element..."
customNS:distanceExample="12dp"
/>
꽤 직설적 인.
3. 전달받은 값을 활용하라
사용자 정의보기의 생성자를 수정하여 값을 구문 분석하십시오.
public MyCustomElement(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.MyCustomElement, 0, 0);
try {
distanceExample = ta.getDimension(R.styleable.MyCustomElement_distanceExample, 100.0f);
} finally {
ta.recycle();
}
// ...
}
distanceExample
이 예제에서 개인 멤버 변수입니다. TypedArray
다른 유형의 값을 구문 분석하기 위해 많은 다른 것이 있습니다.
그리고 그게 다야. 에서 파싱 된 값을 사용하여 View
수정하십시오. 예를 들어 onDraw()
그에 따라 모양을 변경하려면 에서 사용하십시오 .