Android中drawable XML shape是定义纯色、渐变、圆角、描边等轻量图形的方式,无需图片,适配好、体积小、可动态修改;根节点为,支持rectangle、oval、line、ring四种类型,通过等子标签实现不同效果,常用于按钮背景等场景。
Android 中的 drawable XML 形状(shape)是定义纯色、渐变、圆角、描边等简单图形最轻量的方式,无需图片资源,适配性好、体积小、可动态修改。
是根节点,必须通过 android:shape 指定形状类型:
使用,注意要设高度(如 android:height="2dp")在 内可嵌套以下标签实现不同效果:
#80FF57B2)dashWidth 和 dashGap)rectangle 支持)linear(线性)、radial(径向)、sweep(扫描),常用属性包括 android:startColor、android:endColor、android:angle(仅线性渐变,45 的倍数,0 表示从左到右)oval 或 line,避免拉
伸变形保存为 res/drawable/bg_button_primary.xml:
然后在 Button 中使用:android:background="@drawable/bg_button_primary"
res/drawable/ 下,命名小写+下划线,避免大写字母和特殊符号@color/xxx 引用主题色,便于夜间模式或主题切换rectangle 中仍有效,但 oval 会自动适应为正圆layer-list 叠加偏移的深色矩形模拟,或改用 MaterialCardView + elevation
GradientDrawable 获取并调用 setColor()、setCornerRadii() 等方法动态更新