1. values 폴더에 attrs.xml 파일을 만든다.
2. 아래와 같이 attrs.xml 에 코드를 추가한다. NewAttr로 strokeWidth와 strokeColor 라는 속성을 만드는 것이다.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="NewAttr">
<attr name="strokeWidth" format="dimension" />
<attr name="strokeColor" format="color" />
</declare-styleable>
</resources>
3. layout xml 파일에 속성 값을 넣는다. (잘 안보이시겠지만, 진하게 되어 있는 부분만 추가하면 됩니다.)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.test.canvastest.MainActivity">
<com.test.canvastest.GroupTitleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="aaaaaaaaaaaaaaaaaaaaaaaaaa"
android:textSize="20dp"
app:strokeWidth="2dp"
app:strokeColor="@android:color/black"/>
</RelativeLayout>
4. CustomView에 속성 값을 가져 온다.
public GroupTitleView(Context context, AttributeSet attrs) {
super(context, attrs);
strokeWidth = context.obtainStyledAttributes(attrs, R.styleable.NewAttr)
.getDimensionPixelSize(R.styleable.NewAttr_strokeWidth, context.getResources().getDimensionPixelSize(R.dimen._2dp));
color = context.obtainStyledAttributes(attrs, R.styleable.NewAttr)
.getColor(R.styleable.NewAttr_strokeColor, Color.WHITE);
}
끝!!
index를 가져 올때 , 아래와 같다. (Android studio 1.5 버전 부턴 ctrl+space로 자동 확인 가능)
Styleable Name + '_' + attr
즉, NewAttr + '_' + strokeWidth 로 index를 불러오면 된다.
참고하세요.
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] Half ratingbar (0) | 2016.01.27 |
---|---|
[Android] Custom TextView not working gravity (0) | 2016.01.22 |
[Android] Make CustomView (TextView, OnMeasure) (0) | 2016.01.22 |
[Android] Get current fragment (0) | 2016.01.21 |
[Android] 강제로 AppbarLayout 열기 (0) | 2016.01.21 |