Я проверял похожие вопросы здесь, но ответы уже делают то, что я делаю. Я пробовал большинство вещей, которые мог придумать, и просто не могу решить эту проблему.
Я создал свое собственное представление, в котором я рисую прямоугольники размером 100x100 рядом друг с другом. Первый прямоугольник нарисован правильно, но второй нарисован в цвете третьего прямоугольника, а третий прямоугольник вообще не нарисован. Я просто не могу понять, что я делаю не так.
private void init(@Nullable AttributeSet set){
listRect = new ArrayList<>();
listColor = new ArrayList<>();
loadRect();
invalidate();
}
private void loadRect(){
Rect rect = new Rect();
Paint paint = new Paint();
paint.setColor(Color.GREEN);
rect.set(0,0,100,100);
listColor.add(paint);
listRect.add(rect);
rect = new Rect();
paint = new Paint();
paint.setColor(Color.BLUE);
rect.set(100,0,100,100);
listColor.add(paint);
listRect.add(rect);
rect = new Rect();
paint = new Paint();
paint.setColor(Color.RED);
rect.set(200,0,100,100);
listColor.add(paint);
listRect.add(rect);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
for(int i = 0; i < listRect.size(); i++){
canvas.drawRect(listRect.get(i), listColor.get(i));
}
}
Вот изображение вида макета