#android #android_layout
Рассмотрим то, что мне нужно, на примере этого котика: Допустим, в моём приложении этот котик представляет собой атрибут background в корневом layout в файле main_activity.xml. Во-первых, если экран устройства меньше, чем котик, то котик должен сжиматься, но никак не обрезаться. Причём так, чтоб на экране не оставалось пустого места. То есть: Так-то оно и по умолчанию происходит, но есть одно больше во-вторых: все view-элементы на экране тоже должны сжиматься и оставаться на той части котика, на которой они были изначально, то есть: В общем, это всё, что мне нужно, но так должно быть на каждом устройстве, учитывая планшеты. Я много читал в интернете про все эти экранные дела, но там нету целостной картины. А мне нужна полная последовательность действий: какие нужно создавать layout'ы? какие к ним нужны подпапки drawable? какого разрешения делать котиков? писать ли что-то в AndroidManifest? и что-то ещё, чего я не знаю..?
Ответы
Ответ 1
Требуемого вами поведения можно в основном добиться, используя следующую разметку:Котик заполняет собой все место - и в альбомной и в портретной ориентации. Проверено на телефоне и планшете. Надпись распологается на одном и том же месте котика. Если искать несоответстие, то это не совсем пропорциональное изменение размера текста (особенно заметно по ширине). Тут конечно тоже можно было бы повозиться и пересчитать размер шрифта, исходя из числа пикселей экрана. И назначить этот размер шрифта программно. Но мне кажется, не стоит так напрягаться, так как результат вполне сносный. Если лезть в такие дебри, то потом возникнут проблемы типа: а что если текст не поместится в одну строку? и т.д. По поводу разных плотностей. Картинка благополучно растянулась под размер экрана и на телефоне и на планшете. Оба устройства с нормальной плотностью. Для высокой плотности неплохо было бы предоставить картинку побольше. Для низкой плотности - поменьше, чтобы занимала меньше места, и не было артефактов изображения при обработке слишком детализированного изображения для экрана, где мало пикселей, хотя, может, это и лишнее.
Комментариев нет:
Отправить комментарий