Нарисуйте прямоугольники с пробелом между ними в Android - PullRequest
0 голосов
/ 07 июня 2011

Я хочу нарисовать пять прямоугольников в Android. У меня есть ребра, но теперь я хочу, чтобы они были немного разнесены.

Я хочу, чтобы они были выровнены внизу и на одинаковом расстоянии между ними.

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 слева, они все еще происходят из того же места.

1 Ответ

4 голосов
/ 07 июня 2011

Возможно height[i] не измениться?

Это должно создать четыре прямоугольника 10х10, разделенных 35 пикселей друг от друга. Кстати, вам не нужно создавать четыре объекта Paint. Повторно используйте то же самое для четырех прямоугольников для повышения эффективности.

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