ShapeableImageView 的使用,告别shape、三方库

属性介绍

style 属性:

属性名描述作用
cornerFamily属性/样式-rounded: 圆角0 -cut: 切角1
cornerSize弧度弧度大小
cornerSizeTopLeft左上角弧度大小
cornerSizeTopRight右上角弧度大小
cornerSizeBottomRight右下角弧度大小
cornerSizeBottomLeft左下角弧度大小
cornerFamilyTopLeft左上角样式(圆角或切角)
cornerFamilyTopRight右上角样式(圆角或切角)
cornerFamilyBottomRight右下角样式(圆角或切角)
cornerFamilyBottomLeft左下角样式(圆角或切角)

布局属性:

属性名描述作用
shapeAppearanceshapeableImageView的形状外观样引用style样式
shapeAppearanceOverlayShapeableImageView的形状外观叠加样式引用style样式
strokeColor描边颜色
strokeWidth描边粗细

样式案例

build.gradle 配置

    implementation 'com.google.android.material:material:1.6.1'

请添加图片描述

对应Style如下:


    <!--圆形-->
    <style name="roundStyle">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">50%</item>
    </style>


    <!--圆角-->
    <style name="roundedCornerImageStyle10">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">10dp</item>
    </style>

    <!--切角-->
    <style name="roundedCutStyle">
        <item name="cornerFamily">cut</item>
        <item name="cornerSize">10dp</item>
    </style>

    <!--左上右上圆角-->
    <style name="roundedTopStyle">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSizeTopLeft">20dp</item>
        <item name="cornerSizeTopRight">20dp</item>
    </style>

    <!--菱形-->
    <style name="roundedDiamondStyle">
        <item name="cornerFamily">cut</item>
        <item name="cornerSize">50%</item>
    </style>

    <!--子弹头-->
    <style name="roundedBulletStyle">
        <item name="cornerFamilyTopRight">rounded</item>
        <item name="cornerSizeTopRight">50dp</item>
        <item name="cornerSizeTopLeft">50dp</item>
        <item name="cornerFamilyTopLeft">rounded</item>
    </style>

    <!--Tips-->
    <style name="roundedTipsStyle">
        <item name="cornerFamilyTopLeft">rounded</item>
        <item name="cornerSizeTopLeft">50%</item>
        <item name="cornerFamilyBottomLeft">rounded</item>
        <item name="cornerSizeBottomLeft">50%</item>
        <item name="cornerFamilyTopRight">cut</item>
        <item name="cornerSizeTopRight">50%</item>
        <item name="cornerFamilyBottomRight">cut</item>
        <item name="cornerSizeBottomRight">50%</item>
    </style>

    <!-- 左上角90度扇形图片 -->
    <style name="topLeftRoundImageStyle">
        <item name="cornerFamilyTopLeft">rounded</item>
        <item name="cornerSizeTopLeft">100%</item>
    </style>

有个小细节需要注意,当我们使用strokeWidth属性时,一定要对应设置padding,否则会出现显示一半的效果。而padding的值设置为strokeWidth值的一半。如:

      app:strokeWidth="5dp"
      android:padding="2.5dp"

代码已上传github:
https://github.com/ljlstudio/KtMvvm/tree/master/demo/src/main/java/com/kt/ktmvvm/jetpack/shapeableimageview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值