1毫米网格显示不正确(Android)

时间:2013-07-22 10:22:00

标签: java android android-layout mobile grid

我正在尝试创建一个网格,每1毫米显示一条线,10毫米的粗线显示,并具有以下代码:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1,
            getResources().getDisplayMetrics());

    float currentH = 0;
    float currentW = 0;

    int countX = 0;
    int countY = 0;

    DisplayMetrics metrics = getResources().getDisplayMetrics();

    while (currentW < metrics.widthPixels) {
        if(countX % 10 == 0){
            this.paint.setStrokeWidth(0.5f);
            this.paint.setColor(getResources().getColor(R.color.GridGreenTens));
        } else {
            this.paint.setStrokeWidth(0.1f);
            this.paint.setColor(getResources().getColor(R.color.GridGreen));
        }
        canvas.drawLine(currentW, 0, currentW, metrics.heightPixels, paint);
        countX++;
        currentW += px;
    }
    while (currentH < metrics.heightPixels) {
        if(countY % 10 == 0){
            this.paint.setStrokeWidth(0.5f);
            this.paint.setColor(getResources().getColor(R.color.GridGreenTens));
        } else {
            this.paint.setStrokeWidth(0.1f);
            this.paint.setColor(getResources().getColor(R.color.GridGreen));
        }
        canvas.drawLine(0, currentH, metrics.widthPixels, currentH, paint);
        countY++;
        currentH += px;
    }
}

我的问题是它显示如下:

enter image description here

正如您所看到的,粗线(o.5f)的出现频率要高得多。任何帮助将不胜感激。

0 个答案:

没有答案