首页 > 解决方案 > 在同一位置多次在画布上画线使其更加饱和

问题描述

我遇到了一个非常奇怪的绘图问题。我想创建 PDF,为此,我使用了一个 android 本机 PDF API,它为我提供了一个画布。过了一会儿,我注意到在同一个地方多次画线或矩形比只画一次的饱和度更高。这是我的测试代码:

        Paint paint = new Paint();
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(0.5f);
        paint.setARGB(255,0,0,0);

        for(int i = 0;i < 1000;i++)
            canvas.drawLine(0, 10, PageRectangle.A4.getPointX(), 10, paint);

        canvas.drawLine(0, 20, PageRectangle.A4.getPointX(), 20, paint);

这是结果

有没有办法消除这种饱和?

标签: javaandroid

解决方案


经过一番研究,我发现Canvas提供的 byPdfDocument.Page不绘制像素,它绘制PostScript Points。这是将像素转换为点的代码:

/**
* Converting pixels to PostScript Points
* @param px pixels to convert
* @return PostScript Points
*/
public float convert(float px){
    return (px+0.5f) * 72f / 96;
}

推荐阅读