iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android编程实现自定义ImageView圆图功能的方法
  • 693
分享到

Android编程实现自定义ImageView圆图功能的方法

android自定义imageview 2023-05-30 21:05:53 693人浏览 安东尼
摘要

本文实例讲述了Android编程实现自定义ImageView圆图功能的方法。分享给大家供大家参考,具体如下:首先很感谢开源项目Universal Image Loader图片加载框架。之前也看过一段时间框架源码,但是却没有时间进行知识点的总

本文实例讲述了Android编程实现自定义ImageView圆图功能的方法。分享给大家供大家参考,具体如下:

首先很感谢开源项目Universal Image Loader图片加载框架。之前也看过一段时间框架源码,但是却没有时间进行知识点的总结

今天项目遇到了需要实现圆头像的编辑显示,Universal就已经提供了这个显示RoundedBitmapDisplayer这个类实现了圆图功能。看它的代码可以发现是实现的Drawable

public static class RoundedDrawable extends Drawable {    protected final float cornerRadius;    protected final int margin;    protected final RectF mRect = new RectF(),        mBitmapRect;    protected final BitmapShader bitmapShader;    protected final Paint paint;    public RoundedDrawable(Bitmap bitmap, int cornerRadius, int margin) {      this.cornerRadius = cornerRadius;      this.margin = margin;      bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);      mBitmapRect = new RectF (margin, margin, bitmap.getWidth() - margin, bitmap.getHeight() - margin);      paint = new Paint();      paint.setAntiAlias(true);      paint.setShader(bitmapShader);    }    @Override    protected void onBoundsChange(Rect bounds) {      super.onBoundsChange(bounds);      mRect.set(margin, margin, bounds.width() - margin, bounds.height() - margin);      // Resize the original bitmap to fit the new bound      Matrix shaderMatrix = new Matrix();      shaderMatrix.setRectToRect(mBitmapRect, mRect, Matrix.ScaleToFit.FILL);      bitmapShader.setLocalMatrix(shaderMatrix);    }    @Override    public void draw(canvas canvas) {      canvas.drawRoundRect(mRect, cornerRadius, cornerRadius, paint);    }    @Override    public int getOpacity() {      return PixelFORMat.TRANSLUCENT;    }    @Override    public void setAlpha(int alpha) {      paint.setAlpha(alpha);    }    @Override    public void setColorFilter(ColorFilter cf) {      paint.setColorFilter(cf);    }  }

--结束END--

本文标题: Android编程实现自定义ImageView圆图功能的方法

本文链接: https://www.lsjlt.com/news/221666.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作