0

Androidで5本の長方形のバーを描きたいです。レグタングルがありますが、少し間隔を空けて配置したいと思います。

一番下に揃えて、同じ距離に配置したいと思います。

for (int i= 0; i<4; i++) {
int ce = heigth[i];

Paint rectanglePaint = new Paint(); 
rectanglePaint.setARGB(255, 0, 0, 0); 
rectanglePaint.setStrokeWidth(2);
rectanglePaint.setColor(Color.BLUE);
rectanglePaint.setStyle(Style.STROKE);

Rect rectangle = new Rect(35+10*ce, 150, 10, 10*ce); //in pixels
//rectangle.offset(50, 50);
rectangle.offsetTo(55+10*ce, 150);
//canvas.translate(10, 0); 
canvas.drawRect(rectangle, rectanglePaint);

offset、offsetTo、translateを試しましたが、それらを使用する際のロジックが見つかりません。35ディップ右に移動し、すべて30ディップ幅になるように、すべてを異なる場所から開始するようにします。左側に35を追加しましたが、それでも同じ場所から発生しています。

4

1 に答える 1

4

もしかしてheight[i]変わらない?

これにより、互いに左に 35 ピクセル離れた 4 つの 10x10 の長方形が作成されます。ところで、4 つの Paint オブジェクトを作成する必要はありません。効率を向上させるために、4 つの長方形に同じものを再利用します。

Paint rectanglePaint = new Paint(); 
rectanglePaint.setARGB(255, 0, 0, 0); 
rectanglePaint.setStrokeWidth(2);
rectanglePaint.setColor(Color.BLUE);
rectanglePaint.setStyle(Style.STROKE);

for (int i= 0; i<4; i++) {
  Rect rectangle = new Rect(35*i, 150, 35*i+10, 160);
  canvas.drawRect(rectangle, rectanglePaint);
}
于 2011-06-06T21:19:25.357 に答える