0

私はこのコードを持っています。最初の drawLine のみが描画され、残りの 2 つは描画されません。現在のケースで他の 2 つのドローラインが機能しない理由を誰か説明できますか? drawLine() ステートメントで「factor」を「1/2」に置き換えると機能します。ありがとう

public class RenderView extends 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();       
}

}

4

2 に答える 2

1

1/2 は 0 です (整数除算による)。1f/2 または 0.5f を試してください。

于 2012-04-05T15:57:57.483 に答える
1

問題は、1/2 が整数除算であるため、1/2 = 0 になることだと思います。代わりに 0.5f を試してください。

于 2012-04-05T15:58:55.170 に答える