- Русские Блоги
- Адаптация экрана Android (наименьшая адаптация ширины / сегодняшнее решение для адаптации экрана заголовка)
- (1) Сегодняшний план адаптации экрана заголовка
- (2) Адаптация режима наименьшей ширины
- Какая самая маленькая ширина
- Как рассчитывается значение наименьшей ширины
- Интеллектуальная рекомендация
- Преобразования общих типов для передачи данных по протоколу iOS-TCP / IP (приветствуются дополнения
- Lotus версия 0.4.1 Данные цепочки блока Copy Block снижает синхронизацию
- Маленькая программа wx: ограничение количества списков цикла for
- Шантажировал биткойн впервые
- Русские Блоги
- Принцип адаптации экрана Android dp (полное объяснение позже)
- 1. Справочная информация 1. Google рекомендует при кодировании использовать единицу измерения как dp, sp, match_parent или wrap_content.
- 2. В чем проблема с многоэкранной адаптацией? (Требуется вмешательство продукта)
- 3. Справочная информация 2: Google предоставляет правила квалификатора для каталогов ресурсов.
- 4. Происхождение 360dp и dp_360, определение пар ключ-значение базовых размерных переменных.
- 5. Скомбинируйте пары ключ-значение переменной dp_xxx из файла values / dimensions.xml и правил dp sw для создания других файлов Dimens.xml.
- 6. Как адаптировать или отменить адаптацию для мобильного телефона с неизвестной шириной dp?
- 7. Как преобразовать переменную измерения в dimensions.xml в соответствии с аннотацией px, предоставленной проектом?
- 8. Адаптируйте в зависимости от ширины, игнорируйте высоту.
- Краткое описание:
Русские Блоги
Адаптация экрана Android (наименьшая адаптация ширины / сегодняшнее решение для адаптации экрана заголовка)
(1) Сегодняшний план адаптации экрана заголовка
Как правило, он изменяет значение плотности и принудительно изменяет ширину dp всех мобильных телефонов с разными разрешениями до единого значения, что решает все проблемы адаптации.
Основным принципом его схемы адаптации является вычисление плотности по следующей формуле (плотность означает, сколько пикселей занимает 1 дп на текущем устройстве).
Общая ширина экрана текущего устройства (в пикселях) / общая ширина дизайна (в dp) = плотность
Общая ширина экрана — наименьшая ширина экрана по сравнению с высотой, например: если пиксели экрана 1920 * 1080, общая ширина экрана составляет 1080.
Подробности:
https://mp.weixin.qq.com/s/d9QCoBP6kV9VSWvVldVVwA
https://www.jianshu.com/p/55e0fca23b4f
Также порекомендуйте каркас адаптации экрана, упакованный в соответствии с современной технологией заголовков:
AndroidAutoSize рамка
Использование:
Заполните глобальный размер проектного чертежа (единица измерения dp) в AndroidManifest. Если вы используете подразделение, вы можете напрямую заполнить размер пикселя без преобразования пикселей в dp.
Подробнее для просмотраdemo-subunits
(2) Адаптация режима наименьшей ширины
Следующее содержание исходит отhttps://www.jianshu.com/p/2aded8bb6ede Я просто перечисляю основные
Какая самая маленькая ширина
Наименьшая ширина в переводе на китайский означает минимальную ширину, так что же означает эта минимальная ширина?
Система будет сопоставлять значения-swdp в соответствии с минимальной шириной текущего экрана устройства. Почему бы не сопоставить значения, основанные на ширине, а добавить слова минимум?
Это означает, что мобильные устройства позволяют поворачивать экран. Когда экран поворачивается, высота и ширина экрана меняются местами. Добавляется минимум, поскольку схема не различает ориентацию экрана.В качестве минимальной ширины будут учитываться только самые маленькие из высоты и ширины экрана.Эта минимальная ширина определяется экраном и является фиксированной. Это означает, что независимо от того, как вы поворачиваете экран, если высота экрана больше ширины, система будет считать ширину только минимальной шириной.И наоборот, если ширина экрана больше высоты, система будет считать высоту экрана минимальной шириной.
Как рассчитывается значение наименьшей ширины
Нам нужно вычислить значение smalllestWidth текущего устройства, прежде чем мы сможем узнать, какой папке values-swdp должно соответствовать текущее устройство.
Например:
Мы предполагаем, что информация на экране устройства составляет 1920 * 1080, 480 точек на дюйм
В соответствии с приведенными выше правилами, нам нужно выбрать наименьшее значение в высоте и ширине экрана в качестве минимальной ширины, 1080
Интеллектуальная рекомендация
Преобразования общих типов для передачи данных по протоколу iOS-TCP / IP (приветствуются дополнения
Раньше я работал над проектами TCP / IP. Обработка данных является наиболее сложной задачей. Каждый раз, когда встречается новый тип данных, добавляется новый класс методов, что приводит к путанице. С.
Lotus версия 0.4.1 Данные цепочки блока Copy Block снижает синхронизацию
Lotus версия Скопируйте данные с узла, который был синхронизирован высотой блока Узел паузыlotus daemonБеги, сжатый каталогdatastoreПуть кlotus/datastore Копировать каталогchainс участиемmetadataЗамен.
Маленькая программа wx: ограничение количества списков цикла for
Все мы знаем, что wx: for используется для зацикливания массива. В этом цикле будут зациклены все данные в списке. Но часто нам не нужно зацикливать все данные или мы не хотим отображать все данные. О.
Шантажировал биткойн впервые
Предисловие Новости о вымогателях всегда случались, но я всегда чувствую, что это вряд ли случится со мной. В итоге я встретился сегодня. проблема Во второй половине дня я отправлю интерфейс студентам.
Источник
Русские Блоги
Принцип адаптации экрана Android dp (полное объяснение позже)
Принцип адаптации экрана Android dp
Традиционная адаптация экрана — это адаптация размера пользовательского интерфейса для разных экранов, то есть другие проблемы, вызванные использованием определенных значений dp и sp при написании страниц.
Я уже писал несколько связанных статей и плагинов для инструментов, и я получил много отзывов от пользователей сети.
Я написал этот блог сегодня, чтобы реорганизовать мои предыдущие мысли и в то же время включить мое более глубокое понимание и резюме в ближайшем будущем, чтобы полностью ответить на сомнения всех пользователей сети.
Дружеская ссылка, спасибо за ваши идеи.
«Решение по адаптации экрана Android от Чжана Хоняна»:
И другие великие боги, связанные блоги, поиск для себя
Мои первые несколько статей:
Адаптация экрана Android dp, px два решения
Использование инструмента адаптации экрана Android dp mode (пакетный режим)
Использование средства адаптации экрана Android dp (метод плагина Android Studio)
Использование инструмента адаптации экрана Android dp mode (некоторые сомнения и замечания)
Мы следуем плану следующих вопросов и соответствующих ответов, чтобы шаг за шагом продумать и понять мое решение.
1. Справочная информация 1. Google рекомендует при кодировании использовать единицу измерения как dp, sp, match_parent или wrap_content.
* Единицы дп и зр.
Я знаю все предложения от Google выше.
Кстати: 1dp = (1/160 *) (дюйм) = (2,54 / 160) (см). Фиксированная длина на любом устройстве, если параметры устройства не изменены производителем.
[dp равно физической фиксированной длине]
Официальная ссылка на сайт:
2. В чем проблема с многоэкранной адаптацией? (Требуется вмешательство продукта)
* На мобильных телефонах с разной шириной dp требуется пропорциональное масштабирование.
Как показано выше. Мы следуем предложению Google, согласно которому при кодировании пользовательского интерфейса используйте dp для жесткого кода, тогда визуальные эффекты на мобильных телефонах с разной шириной dp будут иметь ошибки, а раскладка будет сдвинута в одну сторону.
Конечно, следует отметить, что физическая длина элемента управления постоянна, потому что я упоминал выше, что dp равен физической длине реального мира.
Значение ширины dp разных мобильных телефонов может быть разным, что является проблемой.
Что, если продукт нуждается в эффекте, показанном на рисунке 2 выше, и общая структура пользовательского интерфейса, отображаемого на мобильных телефонах с разной шириной dp, остается неизменной?
Это проблема многоэкранного пользовательского интерфейса адаптации.
Конечно, эффект от продукта Le Intent 1 не имеет большого значения, поэтому вам не нужно смотреть на следующее.
В настоящее время мы определили требование, согласно которому пользовательский интерфейс должен обеспечивать пропорциональное масштабирование на мобильных телефонах с разной шириной dp для достижения того же общего эффекта пользовательского интерфейса.
3. Справочная информация 2: Google предоставляет правила квалификатора для каталогов ресурсов.
* На основе правила квалификатора sw dp от Google предоставляется несколько наборов файлов измерения .xml.
То есть google позволяет создавать каталог с тем же именем и правилом квалификатора в каталоге ресурсов, поддерживаемом в каталоге res /.
Такие как: drawable-hdpi, layout-land, strings-en.xml и т. Д.
Официальная ссылка на сайт:
В этой статье необходимо упомянуть спецификатор sw dp. Пожалуйста, прочтите этот раздел официального сайта документа подробно.
В моем случае этот классификатор работает с каталогом значений, например:
Во время работы системы мобильного телефона, в соответствии с фактическим значением ширины dp мобильного телефона, он ищет каталог значений указанной ширины dp, а затем использует набор ресурсов для работы с пользовательским интерфейсом. Например, фактическое значение ширины dp мобильного телефона равно 410, тогда система будет использовать ресурсы в values-sw410dp для работы с приложением.
Но будь осторожен. Если значение ширины вашего телефона составляет 410,69. Может быть, вы можете сгенерировать каталог value-sw410.59dp, чтобы выполнить адаптацию, я не пробовал. Лично я предлагаю вам написать значения-sw410dp вместо values-sw410.59dp или values-sw411dp. Поскольку система будет выполнять поиск в каталоге значений со значением, равным или меньшим 410,59, до каталога значений по умолчанию.
Один из методов расчета значения dp ширины мобильного телефона:
sw означает наименьшую ширину, которая является минимальной шириной dp телефона.
Фактически, более конкретно, это относится к наименьшему из значений dp ширины и высоты телефона.
Для обычного телефона ширина dp должна быть меньше. Если телефон переключен в альбомную ориентацию, то значение высоты dp будет меньше.
Однако значение dp наименьшего значения одинаково независимо от того, находится ли оно в альбомном или портретном режиме. То есть, независимо от состояния экрана по горизонтали и вертикали, этот телефон будет искать только соответствующий файл (dimensions.xml) в каталоге значений, соответствующий ширине dp, для решения проблемы размера пользовательского интерфейса и избежания проблемы деформации пользовательского интерфейса при переключении между горизонтальным и вертикальным экраном.
Метафорически, ваш телефон имеет ширину 360dp и высоту 640dp. Затем, будь то горизонтальный или вертикальный экран, когда программа работает, она будет искать каталог value-sw360dp (если он есть), который будет действовать в пользовательском интерфейсе. Вместо использования значений-sw360dp для портретной ориентации и значений-sw640dp для альбомной ориентации экспериментируйте самостоятельно.
Если вы не хотите получать этот результат, вы можете выбрать метод каталога значений-w dp. Для получения дополнительной информации обратитесь к описанию официального веб-сайта, приведенному выше, и поэкспериментируйте самостоятельно.
На данный момент мы понимаем официальный принцип Google. В остальном нам нужно определить переменную размерности и сгенерировать файл измерения.xml, соответствующий ширине dp мобильного телефона, чтобы воздействовать на интерфейс пользователя для достижения эффекта пропорционального масштабирования интерфейса.
4. Происхождение 360dp и dp_360, определение пар ключ-значение базовых размерных переменных.
* Ширина экрана разделена на 360 частей, а переменная dp_360 считается полноэкранной, что эквивалентно match_parent.
Во многих основных мобильных телефонах, таких как 1920×1080, 1280×720 и т. Д., Тесты показали, что значение dp ширины их мобильного телефона составляет 360dp, а диапазон покрытия достигает 90%, но в него не входят популярные полноэкранные и Liu Haiping (не тестировались). Карта аннотаций, предоставляемая дизайнером, также обычно составляет 720px или 1080px. Когда мы конвертируем ее в соответствующее значение dp, она также основана на значении по умолчанию 360. Если дизайнер помогает преобразованию, результат остается тем же.
То есть, будь то расчет ширины мобильного телефона традиционного размера или общее признание разработки и дизайна во время разработки, 360dp рассматривается как значение ширины экрана мобильного телефона.
Чтобы соответствовать этому стандарту и облегчить вычисления, я буду использовать 360 в качестве контрольного значения для плана адаптации, который является источником 360.
Согласно вышеизложенному, я установил значение dp ширины экрана в переменную dp_360 (обратите внимание, что это переменная, а не фиксированное значение 360dp),
Экран любого телефона разделен на 360 частей.
Затем набор переменных определяется в файле values / dimensions.xml по умолчанию, а имя и значение переменной находятся в соотношении 1: 1.
Например:
Преимущества:
А. Даже если используется только файл values / измеренияs.xml, его можно адаптировать к 90% традиционных мобильных телефонов.
б. Определение переменных интуитивно понятно и легко для понимания. Экран разделен на 360 частей, каждая часть — dp_1, а полная ширина экрана — dp_360.
В. Легко преобразовать дизайн px в значение dp.
г. Избегайте жесткого кодирования и упростите унифицированное управление. Даже без моей адаптации.
5. Скомбинируйте пары ключ-значение переменной dp_xxx из файла values / dimensions.xml и правил dp sw для создания других файлов Dimens.xml.
* Масштабируйте значения пар ключ-значение в измерениях .xml в равных пропорциях.
Например: у меня есть мобильный телефон с шириной 360dp и 720dp. Как я могу сгенерировать файл 720dp dimensions.xmla на основе адаптированного 360dp?
Значение dp ширины мобильного телефона изменилось с 360 до 720, увеличившись в 2 раза, затем каждое значение измерения в файле измерения. xml с шириной мобильного телефона 360dp умножается на 2, а имя переменной (ключ Значение) не меняется, реализует ли он принцип?
Рассмотрим ширину кнопки layout_width = «@ dimension / dp_180». На телефоне с разрешением 360 dp фактическое значение составляет 180 dp, что ровно вдвое меньше ширины телефона. На телефоне с разрешением 720 dp фактическое значение равно 360 dp или вдвое меньше ширины телефона.
Эффект пропорционального масштабирования [То, что вы получаете, это то, что вы видите].
Наконец-то знаю принцип, прост в использовании. Но я не могу написать файл измерения вручную или вычислить значение вручную?
Конечно, у меня есть инструменты. Пожалуйста, перейдите по ссылке в начале статьи
1. Пакетное выполнение пакета jar.
2. Метод плагина Android Studio.
6. Как адаптировать или отменить адаптацию для мобильного телефона с неизвестной шириной dp?
* Сгенерируйте соответствующий каталог значений и файл измерение.xml на основе значения ширины dp мобильного телефона.
Если вы решили адаптироваться к определенному мобильному телефону, вы должны знать фактическую ширину времени выполнения dp мобильного телефона.
Затем получите здесь значение dp для разработки под Android, и инструмент может сгенерировать соответствующие значения и файл dimensions.xml.
Нет необходимости изменять страницу или код Java, но его необходимо переиздать.
Что если я хочу отменить адаптацию мобильного интерфейса с шириной 640dp?
Просто удалите каталог values-sw640dp и его подфайлы.
Нет необходимости изменять код, но его необходимо переиздать.
Конечно, открытый диапазон определенно не обрабатывается адаптацией пропорционального масштабирования пользовательского интерфейса. Это недостаток.
7. Как преобразовать переменную измерения в dimensions.xml в соответствии с аннотацией px, предоставленной проектом?
* Разделите на эталонное значение 360 и сожмите его до видимого диапазона телефона.
Условно дизайн даст изображения шириной 1080 или 720px.
Давайте возьмем в качестве примера изображение шириной 755 пикселей.
Известно, что проектный размер изображения составляет 755px-1265px, а значение пикселя в пикселях для одной из кнопок составляет 100px-50px.
Как записать значение dp кнопки на мобильном телефоне на основе 360 равных частей?
Давай не будем говорить о высоте.
Исходя из ширины, размер проектного чертежа составляет 755 пикселей, и он сжимается до диапазона dp_360. Степень сжатия = 755/360 = 2,1 (приблизительно).
То есть все в проекте должно быть сжато в 2,1 раза, чтобы использовать переменные, основанные на диапазоне dp_360.
Ширина кнопки сжимается в 2,1 раза, что равно 100 / 2,1 = dp_48 (примерно) (переменная, а не конкретное значение dp)
По аналогии высота кнопки равна 50 / 2.1 = dp_24
Приведенный выше расчет примерно равен округлению или округлению, и вы можете приблизиться.
Причина, по которой проектный чертеж рекомендуется кратным 360, например 720 или 1080, заключается в том, что степень сжатия, полученная делением на 360, является целым числом. Тогда нам не нужно округлять, чтобы получить приблизительное значение при настройке ширины и высоты элемента управления.
8. Адаптируйте в зависимости от ширины, игнорируйте высоту.
* В зависимости от ширины 360 равных частей, используйте ScrollView для высоты самостоятельно.
Как упомянуто выше, в зависимости от ширины проектного чертежа он сжимается в 360-эквивалентный диапазон экрана мобильного телефона.
Но обратите внимание, что содержимое на чертеже дизайна сохраняет соотношение сторон, то есть содержимое не будет деформировано.
Тогда возникает еще одна проблема, поскольку соотношение сторон контента, как гарантированно, будет одинаковым, не будут ли некоторые экраны мобильных телефонов вместить весь дизайн контента?
Да. ! ! ! ! ! Используйте ScrollView для прокрутки. Если я ограничу высоту, высота элементов управления неизбежно появится на телефонах некоторых форм. И в приведенном выше примере степень сжатия по ширине не может использоваться для вычисления высоты элемента управления. Это сложнее, или эффект более отвратительный.
Краткое описание:
* Разделите ширину экрана на 360 частей, чтобы добиться масштабирования пользовательского интерфейса на мобильных телефонах разных размеров.
Я использую следующие правила квалификатора каталога значений: sw dp. Вышеупомянутые значения dp ширины мобильного телефона относятся к минимальной ширине, которая меньше значений dp ширины и высоты мобильного телефона, и не имеют никакого отношения к текущему состоянию экрана по горизонтали и вертикали.
Если вы используете правило квалификатора w dp, ширина относится только к значению dp «width» в текущих состояниях экрана по горизонтали и вертикали. При переключении между горизонтальным и вертикальным экранами значение dp «width» изменится, и система будет использовать ресурсы в соответствующем каталоге значений.
Разработчики мобильных телефонов, планшетов и телевизоров могут использовать этот набор адаптационных решений, но используемые чертежи пользовательского интерфейса могут быть только для их соответствующих типов. Например, при разработке телевизора вы можете использовать только схемы проектирования пользовательского интерфейса для телевизоров, а не схемы проектирования мобильных телефонов.
При выполнении адаптации экрана на основе значения ширины dp рекомендуется не использовать значение ширины dp в других областях, то есть приложение, разработанное для планшета, может адаптироваться к другим значениям ширины dp, которые могут отображаться на планшете, но не добавлять ширину, которая может отображаться на мобильных телефонах или телевизоре. Значение ДП увеличилось. Приложение для планшета работает на телевизоре или мобильном телефоне. Сам интерфейс не настроен. Какая польза от адаптации значения ширины dp?
Одно: инструмент создан, никаких изменений кода не требуется. Легко добавить или удалить.
Недостаток: это желаемый эффект продукта? Не может охватить все модели.
Спасибо QQ netizen Alpha за отличные предложения
Источник