2015-05-12 5 views
1

Я нарисовал квадрат, но как я могу разместить рядом с ним без пробелов? Я считаю, что первый параметр (0) в mRedRect1F должен измениться, но я не знаю, что делать.Нарисуйте фигуру рядом с другим

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    mRedRect0F = new RectF(0, 0, 50, 50); 
    mRedRect1F = new RectF(0, 0, 50, 50); 

    canvas.drawRect(mRedRect0F, mRedRectPaint); 
    canvas.drawRect(mRedRect1F, mRedRectPaint); 

} 

Update

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    mRedRect0F = new RectF(0, 0, 20, measuredHeight); 
    mRedRect1F = new RectF(getWidth() - 20, 0, getWidth(), getHeight()); 

    canvas.drawRect(mRedRect0F, mRedRectPaint); 
    canvas.drawRect(mRedRect1F, mRedRectPaint); 
} 

ответ

1

Есть 3 способа вы могли бы добиться этого с верхней части моей головы.

Первый должен определить второй RecfF как 50 пикселей дальше вправо.

new RectF(50, 0, 100, 50); 

Следующий должен перевести холст, прежде чем рисовать второй.

mRedRect = new RectF(0, 0, 50, 50); 
canvas.drawRect(mRedRect, mRedRectPaint); 
canvas.translate(50, 0); 
canvas.drawRect(mRedRect, mRedRectPaint); 

И третье - это смещение RectF перед рисунком.

mRedRect = new RectF(0, 0, 50, 50); 
canvas.drawRect(mRedRect, mRedRectPaint); 
mRedRect.offset(50, 0); 
canvas.drawRect(mRedRect, mRedRectPaint); 
+0

Я не хочу использовать цифры. Возможно ли иметь что-то вроде 'android: layout_toRightOf (mRedRect0F)'? – MacaronLover

+0

Не совсем, если вы хотите использовать макет, используйте макет. – alex

+0

Знаете ли вы правильное решение для решения [этой другой проблемы программно (в Java с использованием canvas not XML)] (http://stackoverflow.com/questions/32037260/how-to-add-rectangles-on-top-of- существующий-прямоугольник в холсте)? Я потратил месяцы, пытаясь решить эту проблему, но не повезло, и ответы, которые были даны, также не решают проблему. – MacaronLover

1

Вы можете создать метод toRightOf. Уверен, что это будет больше работы, но если вам когда-нибудь понадобится повторить это, у вас уже есть способ, написанный для этого. На данный момент я не на компьютере, или я бы попробовал. Если вы не собираетесь делать это более одного раза, я бы воспользовался одним из вариантов, опубликованным в первом ответе.

Смежные вопросы