Основываясь на коде, который я использовал для моего рисунка на холсте и скриншоте, я пытаюсь заполнить конкретный прямоугольник другим цветом, но вместо этого это неожиданное поведение происходит там, где другие прямоугольники также меняют цвет такта. Кто-нибудь знает, что можно сделать, исправить эту проблему?Как использовать различный цвет заливки для конкретных прямоугольников
Я хочу только 2-й прямоугольник из слева на верхней строке, чтобы заполнить черный & погладил красный в то время как другие прямоугольники остаются с красным инсультом
public class Car extends View {
public Car(Context context) {
super(context);
init();
}
public Car(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public Car(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
Paint paint;
private void init() {
paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(4);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int w = canvas.getWidth();
int h = canvas.getHeight();
int rectWidth = w/5;
int space = w/15;
int topRectHeight = getPaddingTop();
int bottomRectHeight = getPaddingBottom();
paint.setStyle(Paint.Style.STROKE); //add this
for (int i = 0; i < 4; i++) {
int left = i * (rectWidth + space);
int right = left + rectWidth;
if (i == 1){
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.BLACK);
}
else{
paint.setColor(Color.RED);
}
Rect rect = new Rect(left, 0, right, topRectHeight);
canvas.drawRect(rect, paint);
paint.setStyle(Paint.Style.STROKE);//add this
Rect rect2 = new Rect(left, h - bottomRectHeight, right, h);
canvas.drawRect(rect2, paint);
}
}
}
Почти, хотя красный мазок не показывает: [ссылка на скриншот] (http://picpaste.com/Screen_Shot_2015-08-28_at_18.41.09-mVUv7MY4.png) – MacaronLover
он должен работать, я проверю, дайте мне минутку. –
Отредактировано, пожалуйста, проверьте его, можете ли вы сказать мне, если это правильно? –