Я работаю с материальным дизайном и столкнулся с проблемой, которую не могу решить. Это про тени / возвышения.
- Здесь мы можем прочитать о тенях и возвышениях в Material Design.
https://developer.android.com/training/material/shadows-clipping.html#Shadows
Но мы можем использовать эти возможности только в Lollipop и выше. А как насчет устройств pre-lollipop? Если я хочу создать приложение, которое можно было бы использовать на устройствах pre-lollipop, я не могу использовать, например
android: elevation = "2dp"
Я прав?
- Если это так, то все, что я могу сделать, - это использовать чертежи дизайна, которые уже включают их тени. И вот еще одна проблема, которую я не могу понять.
Например, дизайнер дает мне psd с каким-то дизайном. Представьте, что это выглядит так
Как видите, верхнее поле панели составляет 448 пикселей. Мы можем легко получить это значение маржи с помощью Photoshop.
Но когда я извлек эту панель с ее тенью, я обнаружил, что сама по себе тень занимает 10 пикселей в верхней части панели.
Это верхнее поле в 448 пикселей не учитывает тень.
Очевидно, я не могу просто поместить panel.png в свой some_layout.xml и установить верхнюю границу поля как 448px (298.67dp), потому что этот чертеж включает тень. Кажется, я должен учитывать длину тени и вычесть ее из верхнего поля (448-10 = 438px = 292dp).
Правильно ли это рассуждение? Я просто не могу в это поверить. Этот способ кажется слишком сложным. Может, есть более эффективная практика?
RelativeLayout
и его атрибуты. Это лучший макет для установки определенных позиций для элементов макета. В xml файле, я думаю, не имеет значения, в какой запрос вы помещаете атрибуты - это зависит только от вас, я имею в виду сделать его максимально читаемым, если позже найдете атрибут, который нужно изменить 11.12.2015