View繪制體系中的AttributeSet和TypedArray是用于解析和處理XML布局文件中的屬性值的工具。
AttributeSet是一個接口,用于表示一個XML布局文件中的屬性集合。它提供了一系列方法來獲取屬性的值,例如getAttributeValue()、getAttributeIntValue()、getAttributeFloatValue()等。通過AttributeSet可以獲取到布局文件中定義的所有屬性及其對應的值。
TypedArray是AttributeSet的一個實現類,它繼承自AttributeSet接口,并提供了一些額外的方法來獲取屬性的值。TypedArray常用于在自定義View中解析和處理布局文件的屬性值。
在使用TypedArray之前,需要先通過Context.obtainStyledAttributes()方法來獲取一個TypedArray對象。這個方法需要傳入一個AttributeSet參數和一個int數組參數,用于指定要獲取的屬性的資源ID。獲取到TypedArray對象后,可以使用一系列的get方法來獲取屬性的值,例如getInt()、getFloat()、getDimension()等。
TypedArray對象在使用完后,需要通過recycle()方法來釋放資源,避免內存泄漏。
AttributeSet和TypedArray在View的繪制過程中起到了重要的作用。它們使得開發者可以在布局文件中定義屬性,并在自定義View中獲取和處理這些屬性的值,從而實現對View的個性化定制。