Android 自定义shape圆形按钮

时间:2023-03-08 16:28:39

Shape的属性:

  • solid

描述:内部填充

属性:android:color 填充颜色

  • size

描述:大小

属性:

android:width 宽

android:height 高

  • gradient

描述:渐变色

属性:

android:startColor渐变起始颜色

android:endColor渐变结束颜色

android:centerColor渐变中间颜色

android:angle 渐变的角度,angle=0时,渐变色是从左向右,然后逆时针方向转;当angle=90时,渐变色从上往下。angle必然是45的倍数

android:type 渐变类型:linear(线性)、radial(放射性,以开始色为中心)、sweep(扫描线式渐变)

android:userLevel如果要使用LevelListDrawable对象,就要设置为true。设置true无渐变色,false有渐变色

android:grdientRadial渐变半径,只有设置type为radial时,此值才生效

android:centerX 渐变中心X点坐标的相对位置

android:centerY 渐变中心Y点坐标的相对位置

  • stroke

描述:描边

属性:

android:width 描边宽度

android:color 描边颜色

android:dashwidth描边样式为虚线时的宽度,值为0时为实线,值大于0时为虚线

android:dashGap 描边为虚线时,虚线之间的间隔

  • corners

描述:圆角

属性:

android:radius 四个角半径值

android:topLeftRadius左上角半径值

android:topRightRadius右上角半径值

android:bottomLeftRadius右下角半径值

android:bottomRightRadius左下角半径值

  • padding

描述:内边距

属性:

android:left 左内边距

android:right 右内边距

android:top 上内边距

android:bottom 下内边距

实例代码

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <corners android:radius="5dp" /> <size
android:height="30dp"
android:width="20dp" /> <gradient
android:startColor="#9933cc"
android:endColor="#aa66cc"
android:angle="90"
/> <padding android:left="5dp"
android:right="5dp"
android:top="5dp"
android:bottom="5dp"/> </shape>
    <Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_test"
android:background="@drawable/btn_shape"
android:text="按钮" />