Как setbounds drawable работает в Android?

я путаю с методом setbounds drawable в Android. Я знаю, что он используется с drawable, и он устанавливает, где drawable и насколько он велик. Кратко, он определяет, ограничивая прямоугольник для drawable. Но я смущен: устанавливает ли он границу или заполнение или его с или высотой? Пожалуйста, позвольте мне объяснить, как я запутался.

вот как мы используем setbounds

drawableInstance.setBounds(L,T,R,B);

первый вариант

Итак, в приведенном выше случае, если я установил 5,5,5,5 для L,T,R, B соответственно, L, T, R, B drawable всегда будет от своего родителя соответственно? Я имею в виду, будет ли это похоже на установку скрытой границы 5px со всех сторон?Кроме того, если изображение недостаточно велико, чтобы соответствовать ширине границы для своего родителя, будет ли изображение больше?

второй вариант

Я установил 5,5,100,100 для L,T,R, B соответственно. Что я путаю, так это то, что он начнет рисовать от родительского 5px к вершине и 5px слева. Это будет отправной точкой. Тогда изображение с будет 100px, потому что я установил 100 для правой. Таким образом, он идет в правый 100px. То же самое снизу справа.

но я проверил его. Я думаю, как не так, что я думаю. Пожалуйста, объясните, как это работает, особенно о каждом параметре setBounds.

1 ответов


значения границ являются абсолютными, а не относительными. То есть, width == right - left и height == bottom - top.

ваш первый пример будет иметь верхний левый угол Drawable at (5, 5), но ширина и высота будут 0.

второй пример также будет иметь верхний левый угол в (5, 5), а ширина и высота будут 95.

границы не зависят от размеров Canvas, к которому Drawable нарисован. Например, если вы нарисуете Drawable с границами вашего второго примера на View вот только 50 by 50, его левая и верхняя стороны будут вставлены 5, но он будет отрезать на правой и нижней границах.