我有这个代码。 只绘制第一个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();
}
}
答案 0 :(得分:1)
1/2为0(通过整数除法)。尝试1f / 2或仅0.5f。
答案 1 :(得分:1)
我认为问题是1/2是整数除法,因此1/2 = 0.尝试0.5f。