1. 程式人生 > >Lose one's way developer

Lose one's way developer

 // 畫刻度
    private void onDrawScale(Canvas canvas) {
        float xScale, yScale;
        mPaint.setColor(textColor);
        int max = 0;
        if (isIntegar) {
            max = (int) (maxScale - minScale);
        } else {
            max = new BigDecimal(10).multiply(new BigDecimal(maxScale - minScale)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
        }
        for (int i = 0; i <= max; i++) {
            xScale = startX + scaleWidth * i;
            //計算繪製整點數值 10 20 …… 1.0 2.0 ……
            int valueTemp = isIntegar ? (int) (minScale + i) : (int) (minScale * 10) + i;

            if (i == 0 || valueTemp % 10 == 0) {
                yScale = scaleMaxHeight;
                float value = isIntegar ? minScale + i : minScale + (float) i/10;
                if(i==0){
                    //當資料 i==0時,第一個資料不一定是整點的1.0(10) 可能是1.1(2,3,4)這樣的,
                    // 這裡如果是1.1-1.5則顯示,1.6-1.9不顯示,會與2.0捱得太進
                    valueTemp = valueTemp%10;
                    if(valueTemp == 0)
                        yScale = scaleMaxHeight;
                    else if(valueTemp == 5){
                        yScale = scaleMinHeight + 5;
                    }else{
                        yScale = scaleMinHeight;
                    }
                    if(valueTemp >= 0 && valueTemp < 6){
                        //這裡的文字y值要與其他的水平 因此傳 scaleMaxHeight
                        drawScaleValue(canvas, value, xScale, scaleMaxHeight);
                    }
                }else{
                    drawScaleValue(canvas, value, xScale, yScale);
                }
            } else if (valueTemp % 5 == 0) {
                yScale = scaleMinHeight + 5;
            } else {
                yScale = scaleMinHeight;
            }
            //上下刻度線
            if(isShowUp)
                canvas.drawLine(xScale, startY, xScale, yScale, mPaint);
            else
                canvas.drawLine(xScale, viewHigth, xScale, viewHigth - yScale, mPaint);

        }

    }
2、滑動處理