在使用 Fesco SimpleDraweeView 的时候,有一个需求是要在页面上展示圆形的头像,如果通过 roundAsCircle
属性来实现,可能在某些机型上出现适配的问题,如在华为 Mate P30 上,在系统设置更改字体大小,导致页面重新绘制的时候,会导致圆形头像偏移,或者发生的拉升出现十字的问题,如下图:
此时虽然有另外一种实现,即使用 roundWithOverlayColor
属性,但是使用场景有局限性,即 roundWithOverlayColor
对应的颜色 C1,要与下层的 view 的颜色 C2 一致,不然就会凸显出一个 C1 颜色的矩形框。如下图:
为了避免上述问题,又基于 SimpleDraweeView 实现图片加载,基于自定义 View 提供一种折中的方式实现圆形头像。
class CircleAvatarView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0