2012-04-05 142 views
0

我有这段代码。 只有第一个drawLine被绘制,其余2个不是。任何人都可以解释为什么另外两条曲线在目前的情况下不起作用吗? 如果在drawLine()语句中将“factor”替换为“1/2”,它们将起作用。 由于在Canvas.drawLine()中使用常量

公共类的RenderView延伸查看{

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();  
} 

}

回答

1

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

1

我认为问题是1/2是整数除法,所以1/2 = 0.尝试0.5f代替。