You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin自定义View(Paint)颜色显示异常问题求助

解决Paint绘制颜色偏紫的常见方案
  • 检查颜色值的通道顺序
    这种偏紫问题大概率是颜色通道顺序搞反了——比如把标准ARGB顺序写成了BGR。Android默认使用ARGB格式的颜色值,比如红色是0xFFFF0000,蓝色是0xFF0000FF。如果误将通道颠倒,就会出现明显的颜色偏差,你可以核对下代码里的颜色值是否符合ARGB顺序。

  • 确认Bitmap的色彩格式
    如果是绘制到自定义Bitmap上,要确保Bitmap用的是ARGB_8888格式(真彩色,颜色还原最准确)。如果用了RGB_565这类低精度格式,会出现颜色失真。创建Bitmap时显式指定格式:

    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    
  • 排查颜色滤镜干扰
    检查Paint是否被设置了ColorFilter或Xfermode,这些属性会修改最终绘制的颜色。如果不需要相关效果,调用paint.setColorFilter(null)清除滤镜试试。

  • 强制指定sRGB颜色空间
    部分场景下非默认的颜色空间会导致颜色偏移,可以给Paint显式设置sRGB颜色空间:

    paint.setColorSpace(ColorSpace.get(ColorSpace.Named.SRGB));
    
  • 验证实际颜色值
    用日志打印Paint的实际颜色值,对比你设置的目标值是否一致,排除代码赋值错误:

    Log.d("PaintColor", Integer.toHexString(paint.getColor()));
    

内容的提问来源于stack exchange,提问作者macizett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:11:18