Paint实战——圆角图片

本文介绍了在Android开发中如何使用BitmapShader和Xfermode来实现图形圆角裁剪。内容包括两种方法的实战过程,强调了BitmapShader作为主流且易实现的方式。同时,提到了在实际应用中需要考虑图片缩放和处理顺序的问题,以及API版本对方法使用的限制。
摘要由CSDN通过智能技术生成

圆角图形在android的开发中非常常见,也有多种实现方式,今天主要演示两种使用paint相关的API来完成图形圆角裁剪的过程。主要用的知识点为BitmapShader和Xfermode,这两个类前面已经有所介绍(闲聊自定义控件之基础——Paint),大家可以对照理解一下。之所以使用这两种方式,一方面是为了补足上一篇讲述paint的博客中缺乏对高级应用的实战,另一方面也是非常重要的一方面是因为这两种方式特别是第一种方式是目前比较主流且易实现的方式。

简单起见,没有针对图片进行缩放处理,如果有这方面的需求,可以将自己写的自定义View继承自ImageView,通过控件的宽高,图片的大小以及scaleType属性,利用Matrix进行缩放,最后进行圆角的处理。特别需要注意的是,圆角的处理要放到缩放之后处理,不然的话可能出不来效果。

BitmapShader实现图形圆角

 /***
     *
     * @param bitmap 原图片
     * @param radius 圆角大小
     * @return
     */
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public static Bitmap roundByBitmapShader(Bitmap bitmap, int radius) {
        Bitmap roundedCornerBitmap = null;
        if (null != bitma
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值