BKDrawable/BKFrameLayout/BKLinearLayout/BKTextView
支持 背景 色 [正常 /选中/按下/禁 用 ]支持 渐变[类型/半径 /方向 /中心 点 XY坐 标(0.0~1.0)/颜色(开始-中心 -结束)]支持 圆角[半径 ,位置 ],根 据 宽高自 动计算 圆角半径 min(height,width) / 2支持 阴影[颜色/半径 /边距(容 纳阴影 的 空 间)]- 阴影颜色
默 认自动从背景 或 描边获取,也可以手动设置 - 阴影绘制
算法 取 自 ShadowRenderer
- 阴影颜色
支持 描边[颜色/厚 度 /虚 线长度 /虚 线间隙 ]- BKTextView
支持 图标[图标/尺寸 /边距/着色 /位置 ],类似 MaterialButton的 图标
repositories {
maven { url "https://gitee.com/ezy/repo/raw/cosmo/"}
}
dependencies {
implementation "me.reezy.cosmo:bk:0.8.0"
}
<declare-styleable name="Background">
<!-- 背景 色 (正常 /选中/按下/禁 用 ) -->
<attr name="bkBackgroundColor" format="color" />
<attr name="bkBackgroundColorSelected" format="color" />
<attr name="bkBackgroundColorPressed" format="color" />
<attr name="bkBackgroundColorDisabled" format="color" />
<!-- 描边(颜色/厚 度 /虚 线长度 /虚 线间隙 ) -->
<attr name="bkStrokeColor" format="color" />
<attr name="bkStrokeColorSelected" format="color" />
<attr name="bkStrokeColorPressed" format="color" />
<attr name="bkStrokeColorDisabled" format="color" />
<attr name="bkStrokeWidth" format="dimension" />
<attr name="bkStrokeDashWidth" format="dimension" />
<attr name="bkStrokeDashGap" format="dimension" />
<!-- 圆角半径 -->
<attr name="bkCornerRadius" format="dimension">
<!-- 根 据 宽高自 动计算 圆角半径 min(height,width) / 2-->
<enum name="auto" value="-1" />
</attr>
<!-- 圆角位置 -->
<attr name="bkCornerPosition" format="enum">
<enum name="normal" value="0" />
<enum name="topLeft" value="1" />
<enum name="topRight" value="2" />
<enum name="bottomLeft" value="3" />
<enum name="bottomRight" value="4" />
<enum name="sideLeft" value="5" />
<enum name="sideRight" value="6" />
<enum name="sideTop" value="7" />
<enum name="sideBottom" value="8" />
<enum name="diagonalDownward" value="9" />
<enum name="diagonalUpward" value="10" />
</attr>
<!--背景 渐变类型-->
<attr name="bkGradientType" format="enum">
<enum name="linear" value="0" />
<enum name="radial" value="1" />
<enum name="sweep" value="2" />
</attr>
<!--渐变中心 点 X坐 标(0-1)-->
<attr name="bkGradientCenterX" format="float" />
<!--渐变中心 点 Y坐 标(0-1)-->
<attr name="bkGradientCenterY" format="float" />
<!--渐变半径 -->
<attr name="bkGradientRadius" format="dimension" />
<!--渐变方向 -->
<attr name="bkGradientOrientation" format="enum">
<enum name="TOP_BOTTOM" value="0" />
<enum name="TR_BL" value="1" />
<enum name="RIGHT_LEFT" value="2" />
<enum name="BR_TL" value="3" />
<enum name="BOTTOM_TOP" value="4" />
<enum name="BL_TR" value="5" />
<enum name="LEFT_RIGHT" value="6" />
<enum name="TL_BR" value="7" />
</attr>
<!--渐变颜色-->
<attr name="bkGradientColors" format="string" />
<!--渐变开始颜色-->
<attr name="bkGradientStartColor" format="color" />
<!--渐变中心 颜色-->
<attr name="bkGradientCenterColor" format="color" />
<!--渐变结尾颜色-->
<attr name="bkGradientEndColor" format="color" />
<!-- 阴影半径 -->
<attr name="bkShadowRadius" format="dimension" />
<!-- 阴影颜色 -->
<attr name="bkShadowColor" format="color" />
<!-- 阴影边距 -->
<attr name="bkShadowPadding" format="dimension" />
<attr name="bkShadowPaddingLeft" format="dimension" />
<attr name="bkShadowPaddingTop" format="dimension" />
<attr name="bkShadowPaddingRight" format="dimension" />
<attr name="bkShadowPaddingBottom" format="dimension" />
<!-- 内容 内 边距 -->
<attr name="bkContentPadding" format="dimension" />
<attr name="bkContentPaddingLeft" format="dimension" />
<attr name="bkContentPaddingTop" format="dimension" />
<attr name="bkContentPaddingRight" format="dimension" />
<attr name="bkContentPaddingBottom" format="dimension" />
</declare-styleable>
<declare-styleable name="BKTextView">
<!-- icon -->
<attr name="bkIcon" format="reference" />
<attr name="bkIconSize" format="dimension" />
<attr name="bkIconPadding" format="dimension" />
<attr name="bkIconTint" format="color" />
<attr name="bkIconTintMode">
<enum name="src_over" value="3" />
<enum name="src_in" value="5" />
<enum name="src_atop" value="9" />
<enum name="multiply" value="14" />
<enum name="screen" value="15" />
<enum name="add" value="16" />
</attr>
<attr name="bkIconGravity">
<enum name="start" value="0x1" />
<enum name="textStart" value="0x2" />
<enum name="end" value="0x3" />
<enum name="textEnd" value="0x4" />
<enum name="top" value="0x10" />
<enum name="textTop" value="0x20" />
</attr>
</declare-styleable>
The Component is open-sourced software licensed under the Apache license.