Я использовал холст, чтобы нарисовать на нем несколько текстур. эти текстуры являются прямоугольниками, и теперь я хочу использовать эти текстуры с частями их невидимых, поэтому я мог рисовать фоновые цвета позади текстур, чтобы иметь те же текстуры с разными цветами, не добавляя одну и ту же картину с разными цветами. Я пытался добавить прямоугольники, как это:Android нарисовать несколько Rect как цвет фона
for(Coordinate c : ch.getVisibleCoords()) {
ShapeDrawable sD = new ShapeDrawable();
Rect r = new Rect(c.getxS(),
c.getyS(),
(sh.getScreenWidth()-c.getxS()-sh.getTSize()),
(sh.getScreenHeight()-c.getyS()-sh.getTSize()));
sD.setBounds(r);
textureColorRects.add(sD);
}
каждая координата представляет собой структуру хз и YS значениями являются позициями на экране, например координату 1 | 1 может иметь Xs = 0 | yS = 0 и 2 | 1 xS = 48 (48 = texturesize) | YS = 0. Я пробовал это с помощью ShapeDrawable и Rectangles, в первом случае он будет рисовать все одинаковые цвета из одной y-линии, а в другом случае он будет рисовать только какое-то плохое дерьмо. Есть ли другой способ сделать это, или я не понял, как настроить эти прямоугольники, я не могу понять, как это осталось, сверху, справа, внизу работает. Остальная часть кода здесь для вас, чтобы вы могли видеть, как я рисовать ShapeDrawables:
int i = 0;
for(Coordinate c : ch.getVisibleCoords()) {
ShapeDrawable sD = textureColorRects.get(i);
Paint color = new Paint();
color.setColor(c.getLandscape().getType().getColor());
color.setStyle(Paint.Style.FILL);
sD.getPaint().set(color);
sD.draw(canvas);
}
textureColorRects
представляет собой список, содержащий все ShapeDrawables.
спасибо, что прочитал.