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

Android Canvas.drawPoint方法无绘制效果问题求助

为什么Canvas.drawPoint在Android 12+上无法显示?

这不是Android 12+的Bug,问题出在你没给Paint设置笔触宽度:

  • drawPoint绘制的点依赖Paint的strokeWidth属性,默认值为0。在高DPI设备(比如API 35模拟器)上,系统会优化掉0宽度的笔触渲染,导致点完全不可见。而drawRect是填充型绘制,不依赖笔触宽度,所以能正常显示。

  • 解决方法很简单,在调用drawPoint前给Paint设置合适的笔触宽度即可:

paint.setColor(Color.GREEN);
paint.setStrokeWidth(2); // 根据需要调整宽度,比如2px
for(int x = 300; x <= 400; x++)
    for(int y = 300; y <= 400; y++)
        canvas.drawPoint(x, y, paint);
  • 补充:高版本Android对渲染精度和性能的要求更严格,不再兼容0宽度笔触的“隐式显示”逻辑,所以必须显式设置笔触宽度才能让drawPoint生效。

内容的提问来源于stack exchange,提问作者L. Swifter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:57:01