1. 程式人生 > >在Android Studio使用自定義屬性

在Android Studio使用自定義屬性

public MyStyleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Log.i(TAG, "MyStyleView3");
/**
* 獲得我們所定義的自定義樣式屬性
*/
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.CustomStyleView, defStyleAttr, 0);
int n = a.getIndexCount();
for (int i = 0; i < n; i++)
{
int attr = a.getIndex(i);
switch (attr)
{
case R.styleable.CustomStyleView_mTitleText:

mTitleText = a.getString(attr);
break;
case R.styleable.CustomStyleView_mTitleTextColor:
// 預設顏色設定為黑色
mTitleTextColor = a.getColor(attr, Color.BLACK
);
break;
case R.styleable.CustomStyleView_mTitleTextSize:
// 預設設定為16sp,TypeValue也可以把sp轉化為px
mTitleTextSize = a.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 16, getResources().getDisplayMetrics()));
break;
}

}
a.recycle();
/**
* 獲得繪製文字的寬和高
*/
mPaint = new Paint();
mPaint.setTextSize(mTitleTextSize);
// mPaint.setColor(mTitleTextColor);
mBound = new Rect();
mPaint.getTextBounds(mTitleText, 0, mTitleText.length(), mBound);
}
參考: