Я пытаюсь нарисовать изображение ниже, но я не уверен, как рисовать серые и черные прямоугольники. Красные прямоугольники я сделал отлично, следовательно, был бы признателен за кого-то, чтобы сказать мне шляпу можно сделать, чтобы достичь следующего:Нарисуйте несколько прямоугольников с разделителями между
- 7 серые прямоугольники иметь одинаковую ширину
- 6 черных прямоугольников быть 1px каждый
- все вышесказанное должно быть нарисовано между красными прямоугольниками, чтобы оно выглядело точно как изображение ударом.
Пожалуйста, старайтесь избегать использования пиксельных чисел для положения x серых и черных прямоугольников, если вы можете, так как я хочу, чтобы рисунок выглядел одинаково для всех размеров экрана.
Вся помощь была бы весьма признательна.
Большое спасибо заранее.
То, что я пытаюсь достичь
Что я достиг до сих пор
Код проекта
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//red shapes
mRedRect0F = new RectF(0, 0, 10, measuredHeight);
mRedRect1F = new RectF(getWidth() - 10, 0, getWidth(), getHeight());
//grey shapes
mGreyRect0F = new RectF(10, 0, getWidth()/7, measuredHeight);
mGreyRect1F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
mGreyRect2F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
mGreyRect3F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
mGreyRect4F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
mGreyRect5F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
mGreyRect6F = new RectF(10, 0, getWidth()/7 - 20, measuredHeight);
//black shapes
mBlackRect0F = new RectF(0, 0, 1, measuredHeight);
mBlackRect1F = new RectF(0, 0, 1, measuredHeight);
mBlackRect2F = new RectF(0, 0, 1, measuredHeight);
mBlackRect3F = new RectF(0, 0, 1, measuredHeight);
mBlackRect4F = new RectF(0, 0, 1, measuredHeight);
mBlackRect5F = new RectF(0, 0, 1, measuredHeight);
mBlackRect6F = new RectF(0, 0, 1, measuredHeight);
//draw red shapes
canvas.drawRect(mRedRect0F, mRedRectPaint);
canvas.drawRect(mRedRect1F, mRedRectPaint);
//draw grey shapes
canvas.drawRect(mGreyRect0F, mGreyRectPaint);
canvas.drawRect(mGreyRect1F, mGreyRectPaint);
canvas.drawRect(mGreyRect2F, mGreyRectPaint);
canvas.drawRect(mGreyRect3F, mGreyRectPaint);
canvas.drawRect(mGreyRect4F, mGreyRectPaint);
canvas.drawRect(mGreyRect5F, mGreyRectPaint);
canvas.drawRect(mGreyRect6F, mGreyRectPaint);
//draw black shapes
canvas.drawRect(mBlackRect0F, mGreyRectPaint);
canvas.drawRect(mBlackRect1F, mGreyRectPaint);
canvas.drawRect(mBlackRect2F, mGreyRectPaint);
canvas.drawRect(mBlackRect3F, mGreyRectPaint);
canvas.drawRect(mBlackRect4F, mGreyRectPaint);
canvas.drawRect(mBlackRect5F, mGreyRectPaint);
canvas.drawRect(mBlackRect6F, mGreyRectPaint);
}
Может быть легко достигнуто с использованием LinearLayout в сочетании с весами и горизонтальной ориентацией. – Skynet
Нужно посмотреть, как это делается/предпочитают делать это программно (поскольку я буду использовать это с другими компонентами в своей деятельности). Имейте в виду, что другие прямоугольники и текст будут нарисованы поверх этого в ближайшем будущем. – MacaronLover
легко достичь через линейную компоновку. –