圆形头像View切换页面边框线消失的问题

今天写了个带边框的圆形头像View,部分代码如下:

//绘制边框
m_Paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(getMeasuredWidth() / 2, getMeasuredHeight() / 2, circle_radius - 1, m_Paint);

//绘制头像
if (id != 0) {
    m_Paint.setStyle(Paint.Style.FILL);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), id);
    BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
    m_Paint.setShader(bitmapShader);
    canvas.drawCircle(getMeasuredWidth() / 2, getMeasuredHeight() / 2, circle_radius - 2, m_Paint);
}

初次进入没有问题,但是切换页面后再次返回本页,边框线会消失或者看不清楚。
原因是切回本activity后view会重新执行onDraw()方法进行视图的绘制,但是此时的m_Paint已经在第一次加载activity时被设置了渲染器,所以返回本activity后调用的绘制边框的画笔m_Paint是带渲染效果的m_Paint。onDraw()开头加入如下代码后解决:
m_Paint.setShader(null);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值