自定义 view 添加自定义属性
给自定义 view 添加xml属性
步骤:
在 values 文件夹下的 attr.xml 文件中添加属性,name 为属性名,format 为属性类型,也可以在
<resources>
<declare-styleable name="RecycleDetailView">
<attr name="valueSize" format="dimension" />
<attr name="nameSize" format="dimension" />
<attr name="unitSize" format="integer" />
<attr name="mode" format="integer">
<enum name="speedMode" value="1"/>
<enum name="powerMode" value="2"/>
</attr>
</declare-styleable>
</resources>
在 xml 中使用自定义view 并给自定义的属性赋值
<RecycleDetailView
android:id="@+id/test_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:valueSize = "12sp"
app:nameSize = "12sp"
app:unitSize = "12"
/>
在自定义 view 的代码中获取到在 xml 中赋予的属性
mContext = context
val a = context.obtainStyledAttributes(
attrs,
R.styleable.RecycleDetailView,
defStyleAttr,
0
)
val defaultValueSize = sp2PxFloat(19F)
val defaultNameSize = sp2PxFloat(11F)
val defaultUnitSize = 12
valueSize=a.getDimension(R.styleable.RecycleDetailView_valueSize, defaultValueSize)
nameSize=a.getDimension(R.styleable.RecycleDetailView_nameSize, defaultNameSize)
unitSize=a.getInt(R.styleable.RecycleDetailView_unitSize, defaultUnitSize)
a.recycle()

浙公网安备 33010602011771号