前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android-BitmapShader的应用

Android-BitmapShader的应用

作者头像
aruba
发布2020-07-03 10:52:39
7360
发布2020-07-03 10:52:39
举报
文章被收录于专栏:android技术
BitmapShader赋予画笔以图片来着色,使用canvas画圆形就可以实现圆形头像
代码语言:javascript
复制
    private void drawCircleBitmapShader(Canvas canvas){
        BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
        paint.setShader(bitmapShader);

        //获取半径
        int radius = Math.min(bitmap.getWidth(),bitmap.getHeight());
        RectF rect = new RectF(0,0,radius,radius);
        //画椭圆型
        canvas.drawOval(rect,paint);
    }

圆形头像.jpg

如果觉得大,可以使用Matrix对图片进行缩放
代码语言:javascript
复制
    private void drawCircleMatrixBitmapShader(Canvas canvas,int radius){
        BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
        paint.setShader(bitmapShader);
        Matrix matrix = new Matrix();
        //获取缩放比较小的,以保持缩放比一致,防止拉伸图片
        float scale = Math.min((float) radius/bitmap.getWidth(),(float) radius/bitmap.getHeight());
        matrix.setScale(scale,scale);
        bitmapShader.setLocalMatrix(matrix);

        RectF rect = new RectF(0,0,radius,radius);
        //画椭圆型
        canvas.drawOval(rect,paint);
    }

缩放后的圆形头像.jpg

项目地址:https://gitee.com/aruba/ShaderApplication.git
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BitmapShader赋予画笔以图片来着色,使用canvas画圆形就可以实现圆形头像
  • 如果觉得大,可以使用Matrix对图片进行缩放
  • 项目地址:https://gitee.com/aruba/ShaderApplication.git
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档