public GuideCommaView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.GuideCommaView); this.mPictureTop = typedArray.getDimensionPixelSize(2, 0); this.mPicture = typedArray.getDrawable(1); this.mStep1Icon = typedArray.getDrawable(4); this.mStep2Icon = typedArray.getDrawable(6); this.mStep3Icon = typedArray.getDrawable(8); this.mDescription = typedArray.getString(0); this.mStep1Content = typedArray.getString(3); this.mStep2Content = typedArray.getString(5); this.mStep3Content = typedArray.getString(7); this.isStep3Visible = typedArray.getBoolean(9, true); typedArray.recycle(); inflateView(); }
时间: 2024-04-13 19:24:46 浏览: 226
这是一个 GuideCommaView 的构造函数。它在初始化视图时使用到了一些属性。
在这个构造函数中,首先调用了父类的构造函数 `super(context, attrs, defStyleAttr, defStyleRes)`,然后使用 `context.obtainStyledAttributes(attrs, R.styleable.GuideCommaView)` 获取了一个 TypedArray 对象 `typedArray`。
接下来,通过 `typedArray` 获取了一系列的属性值:
- `mPictureTop` 是一个整型属性,使用 `typedArray.getDimensionPixelSize(2, 0)` 获取,第一个参数是属性在 XML 中的索引,第二个参数是默认值。
- `mPicture` 是一个 Drawable 属性,使用 `typedArray.getDrawable(1)` 获取。
- `mStep1Icon`、`mStep2Icon`、`mStep3Icon` 都是 Drawable 属性,分别使用 `typedArray.getDrawable(4)`、`typedArray.getDrawable(6)`、`typedArray.getDrawable(8)` 获取。
- `mDescription`、`mStep1Content`、`mStep2Content`、`mStep3Content` 都是字符串属性,分别使用 `typedArray.getString(0)`、`typedArray.getString(3)`、`typedArray.getString(5)`、`typedArray.getString(7)` 获取。
- `isStep3Visible` 是一个布尔型属性,使用 `typedArray.getBoolean(9, true)` 获取,第一个参数是属性在 XML 中的索引,第二个参数是默认值。
最后,调用了 `typedArray.recycle()` 方法回收资源,并调用了 `inflateView()` 方法来填充视图。
阅读全文