在Canvas.drawLine()中使用常量

时间:2012-04-05 15:55:23

标签: android

我有这个代码。 只绘制第一个drawLine,其余2个不绘制。谁能解释为什么其他两条画线在本案中不起作用? 如果我在drawLine()语句中将“factor”替换为“1/2”,它们就可以工作。 感谢

公共类RenderView扩展了View {

Paint paint;
private float factor = 1/2;

public RenderView(Context context) {
    // TODO Auto-generated constructor stub
    super(context);
    paint = new Paint(Paint.ANTI_ALIAS_FLAG);
}

@Override
protected void onDraw(Canvas canvas) {

    int screenWidth = canvas.getWidth();
    int screenHeight = canvas.getHeight();

    paint.setColor(Color.RED);


    canvas.drawLine(0, 0, screenWidth, screenHeight, paint);

    canvas.drawLine(factor*screenWidth, 0, factor*screenWidth, screenHeight, paint);


    canvas.drawLine(0, factor*screenHeight, screenWidth, factor*screenHeight, paint);

    invalidate();       
}

}

2 个答案:

答案 0 :(得分:1)

1/2为0(通过整数除法)。尝试1f / 2或仅0.5f。

答案 1 :(得分:1)

我认为问题是1/2是整数除法,因此1/2 = 0.尝试0.5f。