Как 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
, но он будет отрезать на правой и нижней границах.