ShapeableImageView使用指南

本文介绍了Android Material组件中的ShapeableImageView,它简化了形状绘制。内容包括ShapeableImageView的绘制原理,如何使用Kotlin代码实现,以及在实际使用中遇到的坑,如在ViewPager中出现黑边的问题及解决方案。
摘要由CSDN通过智能技术生成

前言

  1. 前段时间Google推送了文章 , Android Material 组件 1.2.0 现已发布 里面就有ShapeableImageView,不用像以前再写shape.
  2. 基本使用可以参考这一篇文章,Android ShapeableImageView使用
    ,里面已经介绍了官方的基本用法。
    但是还是不够的,还是在学习下代码方式来使用这个新控件。

绘制原理

ShapeableImageView的实现方式其实和我很久以前写的一篇任意切割的实现方式本质是一样的,但是做到了更好封装和解耦(Google牛逼!)。
ShapeableImageView继承自ImageView,在onDraw方法中,调用了ImageView的绘制方法后,通过使用Xfermode的画笔来绘制路径,达到蒙蔽遮盖的效果,不懂的朋友百度Xfermode学习下。至于外边框则就是普通的画笔来绘制路径了。

Kotlin代码使用

以下使用方式参照推荐的Android ShapeableImageView使用
的案例转化为KT代码的效果图及其实现

在这里插入图片描述

//        圆形图片
        iv_1.shapeAppearanceModel = ShapeAppearanceModel.builder()
            .setAllCornerSizes(RelativeCornerSize(0.5f))
            .build()
//        切角图片
        iv_2.shapeAppearanceModel = ShapeAppearanceModel.builder()
            .setAllCorners(CutCornerTreatment())
            .setAllCornerSizes(dp2px(15f))
            .build()
//        菱形图片
        iv_3.shapeAppearanceModel = ShapeAppearanceModel.builder()
            .setAllCorners(CutCornerTreatment())
            .setAllCornerSizes(RelativeCornerSize(0.5f))
            .build()
//        左上角90度扇形图片
        iv_4.shapeAppearanceModel = ShapeAppearanceModel
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值