Как изменить dpi приложения
Сегодня у нас приложение Screen Shift — приложение, которое позволит Вам создать профили на основе внесенных изменений. Приложение существует для того, чтобы вы смогли изменить разрешение Вашего экрана, изменить его dpi, создать профили и применить эти профили для нужных Вам приложений.
Как изменить разрешение экрана и Андроид
Во-первых, необходимо при первом запуске позволить приложению получить доступ к правам суперпользователя, и вы сможете загружать профили, которые уже есть, к примеру, если вы выберете Загрузить профиль, Вам будут предоставлены профили, которые существуют на официальных андроид устройствах, здесь не только разрешение изменено, но уже и dpi.
Создать профиль вручную. После того, как вы выберете Resoliution, Вам будет доступно изменить разрешение экрана, и внизу подкладочка, которая изменит плотность пикселей. То есть, если допустим у вас на планшете или смартфоне слишком маленькие значки, можно изменить плотность пикселей, изменить разрешение экрана, и Вы получите совсем другую картинку.
Выбираем ScreenShif и приложение предложит Вам сохранить эти настройки. Вот здесь очень Важный момент, если вы сделаете что-то неправильно, то приложение через 15 секунд само уберет эти настройки, дабы уберечь вас от неправильных применений. Просто подождите не пугайтесь, если что-то не так, и вы сможете отменить это. Если вы нажмете ОК, допустим все вас утроило в принятых изменения, тогда изменение будет сохранено, и вы сможете создать и отрегулировать этот профиль.
OVerscan — это подкладочка, которая позволит отсекать определенную часть экрана.
Если вы не хотите пользоваться программой, вы всегда можете ее выключить.
Пjмимо всего, не надо менять разрешение и плотность пикселей для всех приложений. Если вы перейдете во вкладку Per-App Profiles — отсканируются все ваши приложения. Вам будет доступно изменить разрешения и плотность пикселей для любого приложения, выбрать профиль для этого приложения и задать профиль. То есть, только при запуске данного приложения, будет меняться разрешение экрана. После того, как вы измените разрешение, нужно включить программу ScreeShift.
Все остальные приложения будут работать в том же режиме.
О настройках рассуждать много не надо. Здесь есть некоторые варианты. К примеру, в подкладке More Setting вы сможете установить программу в автозагрузку, установить галочку “Показывать уведомления от данного приложения, и задать, как будет выглядеть Ваш дисплей во время звонка.
Вот такое приложение позволит Вам облегчить работу Вашего андроид устройства при загрузке тяжелых приложений.
Windows, начиная с Vista, предоставляет два механизма для адаптации приложений к мониторам с высокой плотностью пикселей (точек на дюйм, DPI): увеличенные системные шрифты и полномасштабное увеличение окон. К сожалению, попытка заставить некоторые ваши приложения работать в каком либо из режимов может оказаться безуспешной, благодаря сочетанию нерадивых разработчиков и плохих решений принятых Microsoft.
От переводчика
В этой статье применяются следующие сокращения которые я счел переводить не целесообразно: Графический Интерфейс Пользователя (GUI), Точек На Дюйм (DPI), DPI-Aware приложения – приложения которые умеют при различных значениях DPI правильно, без искажений отображать свой GUI, Графический Интерфейс Устройства (GDI). Мои комментарии (выделены курсивом).
Методы масштабирования
- Функции Графического Интерфейса Устройства (GDI) для доступа к дисплею. Как правило, GDI координаты измеряются непосредственно в пикселях экрана независимо от размера монитора и плотности пикселей.
- И вывод текста используя системные шрифты Windows. Это не является обязательным, но большинство приложений использует системные шрифты для большей части их графического интерфейса пользователя (GUI).
Масштабирование в стиле Windows XP
Первый из этих методов, как можно догадаться, появился в Windows XP. Этот метод, на самом деле, не является методом масштабирования приложений с графическим интерфейсом как таковой. Масштабируются, при более высоких настройках DPI, только системные шрифты и некоторые элементы пользовательского интерфейса системы (я бы назвал его «метод НЕ масштабирования» в стиле Windows XP).
Все остальные элементы приложений по-прежнему отображаются в масштабе 1:1. Единственной разницей в их внешнем виде является то, что любой текст и некоторые элементы GUI, выводимые с помощью системных функций, вдруг становиться больше. Например, текст на кнопках. Это вызывает очевидные проблемы которые мы обсудим чуть позже.
Масштабирование в стиле Windows Vista или DPI виртуализация
Windows Vista представила второй вариант со странным названием, «масштабирование дисплея», без каких-либо уточнений, видимо, чтобы окончательно запутать пользователей. Мы будем использовать более описательное имя – метод DPI виртуализации. Когда этот метод включен, Windows по-прежнему выполняет масштабирование в стиле Windows XP. Также как и прежде размеры всех системных шрифтов и некоторых элементов интерфейса системы увеличиваются.
Разница в том, что приложения, которые могут правильно использовать высокие значения DPI, должны сообщить об этом Windows. Такие приложения должны установить новый DPI-Aware флаг, либо путем вызова функции Win32 API «SetProcessDPIAware», или, предпочтительно, путем встраивания манифеста с флагом dpiAware. А вот если у приложения отсутствует DPI-Aware флаг, Windows ведет себя по другому, сначала она формирует внутреннее отображение в масштабе 96 точек на дюйм (эмулируя для приложения DPI равный 96), а затем, масштабирует полученное изображение в соответствие с текущими настройками DPI перед выводом на экран.
Это было бы фантастическим метод масштабирования если бы все наши мониторы имели плотность пикселей последних аппаратов iPhones (326 точек на дюйм). К сожалению это не так. Окна приложений масштабированные таким образом выглядят чересчур размыто, при популярном разрешении 120 точек на дюйм (@homm это не разрешение, кстати). Поэтому, Microsoft по умолчанию отключает DPI виртуализацию, если вы выберете плотность пикселей меньше или равную 120 DPI.
Как изменить установки DPI
В Windows 7/8, откройте «Панель управления», a затем выберите «Оформление и персонализация», затем «Экран», и, наконец, выберите «Установить размер шрифта (DPI)» (Windows 7) или «Пользовательские параметры размера» (Windows 8). Вы увидите следующее диалоговое окно (Windows 7, в Windows 8 почти идентично):
В раскрывающимся списке можно выбрать нужную настройку DPI в процентном соотношении, где 100% соответствует 96 DPI, 125% — как на скриншоте, соответствует 120 точкам на дюйм (можно более точно записать значение вручную). До Windows 8 фактическое значение DPI («пикселей на дюйм») отображалось рядом с размером системного шрифта. Windows 8, по непонятным причинам, не показывает значение DPI, так что вы должны рассчитать его самостоятельно.
Также вы можете приложить линейку (у которой есть шкала в дюймах) к экрану, и пытаться совместить маркировку на ней с маркировкой на экране, изменяя значение в раскрывающимся списке. Флажок, обведенный красным внизу, определяет, следует ли использовать только масштабирование в стиле Windows XP, или также новый способ DPI виртуализации. Если флажок не отмечен, как на скриншоте, то DPI виртуализация включена.
Декламация. Это диалоговое окно пример интерфейса не дружественного к пользователю. На первый взгляд кажется, что это флажок для отключения масштабирования в стиле Windows XP. Но этот метод масштабирования (который только увеличивает системные шрифты и другие элементы пользовательского интерфейса системы — масштабирование Windows XP) всегда включается при выборе высокого значения DPI. На самом деле этот флажок управляет, будет ли этот метод единственным (Использовать только масштабы в стиле Windows XP), или также будет применен метод «DPI виртуализации» для приложений, которые не имеют DPI-Aware флага. Так что этот флажок не контролирует метод масштабирования указанный в его название, а контролирует другой метод масштабирования, нигде не упомянутый — и позволяет использовать новый метод, когда флажок снят!
Ошибка в Windows 8. В дополнение к этому, в Windows 8 это диалоговое окно с ошибкой. Как правило, все работает как и в Windows 7, но состояние флажка не сохраняется на значениях DPI 150% и выше. Когда вы устанавливаете этот флажок, «DPI виртуализация» правильно отключается. Тем не менее, сам флажок остается не отмеченным, когда вы в следующий раз открываете этот диалог.
Изменения в Windows 8.1, или почему все размыто?
В Windows 8.1 флажок для масштабирования в стиле Windows XP исчез, и теперь «DPI виртуализация» никогда, не используется при значениях DPI до 120 включительно, но всегда используется при более высоких значениях для тех программ, у которых отсутствует DPI-Aware флаг. Если некоторые приложения кажутся вам нечеткими, необходимо вручную отключить для них DPI виртуализацию.
Windows 8.1 позволяет использовать несколько мониторов с разным значением DPI. Однако эта функция, также заставляет использовать «DPI виртуализацию» для традиционных приложений, которые перемещаются между мониторами с разными значениями DPI. Чтобы этого избежать, можно отключить в настройках «DPI масштабирование», используя новую опцию «Я хочу выбрать один масштаб для всех дисплеев».
Также Windows 8.1 добавляет специальный переключатель для настройки 200% и новый API, чтобы разработчики могли выборочно отключать «DPI виртуализацию».
Помогите, мои системные шрифты не правильного размера!
Иногда, после изменения настроек DPI, вы можете заметить что некоторые системные шрифты стали слишком большими или слишком маленькими для новых установок. Вероятной причиной является то, что вы используете пользовательскую тему рабочего стола на основе ваших старых настроек DPI. Windows не масштабирует шрифты пользовательской темы.
Если вы на самом деле создали пользовательскую тему рабочего стола и хотите сохранить её, вам придется самостоятельно адаптировать шрифты к новым настройкам DPI. Однако, Windows имеет раздражающую привычку «услужливо» создавать пользовательские темы без вашего ведома, по какой-либо причине. Так что, если вы никогда не создавали пользовательскую тему рабочего стола просто удалите её и вернитесь к стандартной теме.
В Windows 7/8, откройте Панель управления, выберите «Оформление и персонализация», а затем «Персонализация». Если вы видите выбранную запись в строке «Мои темы», это означает, что ОС Windows использует тему пользователя, системные шрифты которой Windows не будет масштабировать. Выберите стандартную тему, например, первую запись в разделе «Темы Aero» (Windows 7) или «Windows» «Темы по умолчанию» (Windows 8) и удалите нежелательные записи в разделе «Мои темы». Теперь, все системные шрифты должны отображаться правильно.
Типы приложений, как они масштабируются (или не масштабируются)
Теперь давайте рассмотрим какие методы должны использоваться для существующих Windows приложений при высоких значениях DPI. Следующая таблица обобщающая, позже мы рассмотрим различные случаи более подробно.
DPI-Aware флаг не установлен | DPI-Aware флаг установлен | |
Не DPI-Aware | Нужно использовать DPI виртуализацию | Нужны исправления от разработчиков |
DPI-Aware | Нужно использовать масштабирование в стиле Windows XP | Всегда масштабируется правильно |
Приложения вообще не заботящиеся о DPI — это либо очень старые или плохо написанные, но, тем не менее, по-прежнему используемые. Одним известным примером является ITunes от Apple для Windows. Здесь разработчики используют системные шрифты для GUI и, не заботясь о фактических размерах шрифта, они жестко привязывают размеры окон к разрешению 96 DPI, естественно искажая GUI, когда при более высоких значениях DPI увеличиваются размеры шрифтов.
Такие приложения требуют нового метод масштабирования «виртуализации DPI», к сожалению, это часто делает интерфейс размытым. В противном случае вы столкнетесь с проблемами начиная, от обрезания текста до перекрытия элементов контроля, иногда, делая GUI полностью непригодным (к счастью, это, случается редко). За эти годы я собрал несколько образцов скриншотов не корректных приложений.
разрешение 150% (144 DPI)
Приложения умеющие подстраивать свой GUI под различные значения DPI, но не имеющие DPI-Aware флага — Это типичные приложения эпохи Windows XP. Здесь разработчики позаботились, чтобы получить фактические размеры шрифтов системы перед созданием GUI. Такие приложения отображаются корректно при использование масштабирования в стиле Windows XP. К сожалению, так как они не устанaвливают DPI-Aware флаг, чтобы сообщить Windows этот факт, для них, по умолчанию, будет использована «DPI виртуализация», делая их GUI нечетким. Это может вам не понравиться, так что, вы, возможно, захотите принудительно использовать стиль масштабирования Windows XP для таких приложений.
Пример такого приложения и разрешение 150% (144 DPI)
Приложения умеющие подстраивать свой GUI под различные значения DPI, имеющие DPI-Aware флаг — Это новейший тип приложений которые полностью беспроблемны, независимо от настроек DPI. DPI-Aware флаг установлен автоматически для Windows Presentation Foundation (WPF) и GDI+ приложений, так как эти APIs предоставляют встроенные средства масштабирования. Разработчикам использующим старый GDI API и (удивительно) Windows Forms, нужно вручную помечать свои DPI-Aware приложения.
Выбор метода масштабирования для ваших приложений
После того как вы решили что вы хотите использовать высокое значение DPI, ваш выбор метода масштабирования зависит от приложений в которых вы работаете. Имейте в виду, что, отключить «DPI виртуализацию» означает, установить флажок (check box) с некорректным названием «Использовать масштабы в стиле Windows XP» и наоборот.
- Если вам так невероятно повезло использовать только те приложения, которые являются одновременно DPI-Aware и устанавливают нужный флаг, тогда не имеет значения какой метод масштабирования вы выберете. Все приложения будут использовать масштабирование в стиле Windows XP, а DPI виртуализация никогда не будет использоваться.
- Если вы используете только хорошо написанные DPI-Aware приложения, но некоторые из них не устанавливают необходимый флаг, вы можете отключить «DPI виртуализацию». Таким образом, все приложения будут отображаться правильно без какого-либо замыливания вследствие масштабирования. Если ваш монитор имеет очень высокую плотность пикселей, такую, что масштабированные растровые изображения больше не выглядят размытыми, вы, возможно, захотите включить DPI виртуализацию в любом случае.
- Если у вас есть одно или несколько приложений не приспособленных к изменению DPI и не имеющие DPI-Aware флага, необходимо включить DPI виртуализацию, если вы не готовы мириться с перекошенным GUI приложений. К сожалению, тут возникает еще одна проблема, потому что, Microsoft реализовала эту опцию неудобно. Вы можете включить DPI виртуализацию только для всей системы, а не для отдельного приложения, а затем выборочно отключать для отдельных приложений.
Напоминаем, что в Windows 8.1 уже нет возможности выбора в этом вопросе. Если вы работаете при разрешении в 120 точек на дюйм (125%), каждая программа будет вынуждена использовать масштабирование в стиле Windows XP, a если вы работаете с более высоким разрешением, каждая программа, которая не является DPI-Aware, будет использовать по умолчанию «DPI виртуализацию».
Отказ от DPI виртуализации для отдельных приложений
После того как вы решили включить DPI виртуализацию или вы работаете в Windows 8.1, с разрешением более чем 120 точек на дюйм, вы можете проверить систему на предмет наличия DPI-Aware приложений, которые не имеют соответствующий флаг. И вернуть им возможность использовать масштабирование в стиле Windows XP, для которого они предназначены. Есть два способа сделать это, первый работает только для 32-разрядных приложений, второй универсален и подходит также для 64-битных приложений.
32-разрядные приложения — Это просто: щелкните правой кнопкой мыши на исполняемом файле в Проводнике Windows, выберите диалоговое окно «Свойства», перейдите на вкладку «Совместимость» и установите флажок «Отключить масштабирование изображения при высоком разрешении экрана». Вот и все, в Windows 8.1 это также работает для 64-битных приложений.
64-разрядные приложения — Без всякой видимой причины, возможно чтобы позлить пользователей 64-битных приложений, в Windows 8 и более ранних, упомянутый выше флажок, для 64-разрядных приложений отключен, хотя сам вариант вполне функционален, если внести изменения непосредственно реестр! Так что, запустите редактор реестра и перейдите к этому ключу:
Теперь добавьте строковое значение (REG_SZ), чье имя является полным путем к исполняемому файлу приложения и значением которого является HIGHDPIAWARE. Я рекомендую, чтобы вы сначала изменили несколько 32-битных приложений, как описано выше, чтобы вы могли увидеть некоторые примеры значений в этом ключе реестра.
Мы рассмотрели, как можно использовать настройки DPI на Windows Vista и более поздних версиях. И если вы когда-нибудь задумывались, для чего предназначена опция совместимости — «Отключить масштабирование изображения при высоком разрешении экрана». И почему она ничего не делает на вашей системе, теперь вы знаете: она эффективна, только если у вас включена общесистемная опция «DPI виртуализации» и только для приложений, которые не устанавливают DPI-Aware флаг должным образом, но при этом корректно используют масштабирование в стиле Windows XP.
Дальнейшее чтение
For more information about both scaling methods from a developer perspective, see the MSDN article Writing High-DPI Win32 Applications. This content has moved to Writing DPI-Aware Desktop and Win32 Applications. This lengthy article also contains a sample manifest to declare an application as DPI-aware, as well as sample screenshots for the various scaling methods and tips on display scaling in native code.
Unfortunately, the article currently only covers Windows XP through 7. See Writing DPI-Aware Desktop Applications in Windows 8.1 Preview (Word DOCX) and Chuck Walbourn’s Manifest Madness for additional information on Windows 8 and 8.1.
Outside of Microsoft, Gastón Hillar has published two articles targeting Windows 8.1 at Dr. Dobb’s. Part 1 covers basic concepts, and part 2 shows C/C++ sample code for the Win32 API.
Как изменить DPI на Андроид (инструкция). Возможно вам на форуме сказали «изменить DPI на Android» и теперь вы судорожно пытаетесь понять, что это и как и где это изменить. Наш сайт расскажет что такое DPI и как его изменить.
Все больше и больше людей покупают Android, и после сталкиваются с ситуациями когда в этой операционной системе нужно что-то настроить. В данной статье будет рассказано как изменить плотность дисплея или DPI.
Что такое DPI?
DPI — это плотность размещения пикселей (точек) на дюйм. То есть, предположим, у нас есть два смартфона, оба имеют разрешение экрана 1920X1080, но у первого размер дисплея 4.5 дюйма, а у другого, например 5.2 значит, первый смартфон имеет DPI выше, чем второй.
Зачем изменять DPI?
Как узнать свой DPI дисплея Android планшета или смартфона?
Чтобы узнать какой текущий DPI установлен на вашем планшете или смартфоне достаточно скачать специальное приложение Screen Resolution .
Как еще вариант, если у вас установлено приложение Root Browser ,
найти файл build.prop в папке system и посмотреть значение строки:
Как изменить DPI на Android?
Для того чтобы у вас появилась возможность изменить DPI, вам в любом случае будут нужны root права:
Способ 1. Установка DPI без наличия Root прав Android
- Установите драйвера Android
- Установите программу ADB RUN
- Включите « Отладку По USB «
- Введите команду в окне ADB RUN
adb shell wm density XXX где XXX необходимое значение DPI(480, 320).
Если что-то пошло не так, не удается сбросить DPI или изменить на другое значение, то тогда введите команду:
adb shell wm density reset
Вариант 2. С наличием root, при помощи приложения
Далее скачайте и установите приложение Textdroid DPI
Запустите установленное приложение измените на необходимое значение, нажмите после кнопки «Apply» и «Reboot» что изменения вступили в силу.
С новой загрузкой у вас будет применены новые настройки плотности экрана DPI.
Вариант 3. С наличием Root прав, путем правки файла buid.prop
Запустите приложение Root Browser , найти файл build.prop в папке system и найдите параметр:
Задайте собственный DPI, сохраните документ и перезагрузите Android.
Вот и все! Нет ничего сложного!
Значение DPI (точек на дюйм) отвечает за масштабирование всего, что вы видите на экране. Возможно, мы собрали два телефона с разными диагоналями дисплея. Теоретически, на одном дисплее мы должны видеть больше элементов одновременно, чем на другом. Иногда, однако, этого не происходит, потому что производитель может искусственно увеличивать или уменьшать DPI, поэтому мы видим точно то же самое.
К счастью, на поврежденном устройстве мы можем изменить значение DPI и установить его так, как нам нравится. У вас создается впечатление, что все слишком мало, и вы хотите немного увеличить интерфейс? Увеличьте количество DPI. Или, может быть, вам кажется, что все слишком растянуто и приблизительное, и вы хотите уменьшить его и получить больше места? Все, что вам нужно сделать, это уменьшить DPI, и на экране будет намного больше элементов.
Как установить другие DPI самостоятельно?
На скриншоте ниже мы видим, как изменение в DPI влияет на размер значков и распределение элементов в панели запуска.
Стандартная настройка с 320 DPI видна слева и 280 DPI справа. Мы видим, что после уменьшения я могу отображать, например, больше значков в ящике приложения, а на основном экране я получил дополнительную колонку быстрого доступа.
Существует два способа изменения DPI. Мы можем использовать соответствующее приложение или отредактировать файл build.prop самостоятельно в системном каталоге. Мы покажем оба метода.
Если вы не хотите играть с собой при редактировании системных файлов, стоит обратиться к приложению DPI Changer, которое автоматизирует весь процесс.
Загрузить DPI Changer
Во-первых, рекомендуется создать резервную копию нашего файла build.prop, чтобы вы могли восстановить его в случае возникновения проблем. Для этого мы разработаем поле «Выберите, что делать» и выберите его в списке «Резервное копирование».
Выбрав этот параметр, мы коснемся кнопки «Перейти». Теперь приложение будет архивировать наш файл. Если мы хотим восстановить его однажды, просто используйте параметр «Восстановить build.prop».
Пришло время изменить DPI. В поле «Фактическое значение» мы видим текущее значение DPI. В моем случае это 320. В поле «Новое значение ДОИ» введите новое значение. Я уменьшу DPI на 40, т. Е. Установит новое значение в 280.
В поле «Выбрать, что делать» я выбираю «Применить новое значение DPI» и прикоснитесь к кнопке «Перейти». Теперь приложение будет запрашивать права root (выберите «Разрешить») и измените наше значение. Теперь все, что вам нужно сделать, это перезапустить смартфон, чтобы изменения вступили в силу.
Загрузить ES File Explorer
Мы запустим менеджера, а затем мы вытаскиваем боковую панель слева. На вкладке «Инструменты» выберите опцию «Root Explorer», благодаря которой мы сможем редактировать системные файлы.
Затем, в верхнем правом углу, переключите представление из содержимого карты памяти («sdcard») в нашу основную системную папку («/ Устройство»). Перейдите в папку «system», а затем внизу вы можете открыть файл «build.prop».
Когда приложение спросит, как открыть файл, выберите «ES-Notes editor». После открытия файла откройте меню в правом верхнем углу и выберите «Изменить».
После активации редактирования мы немного переместим файл и найдите переменную «ro.sf.lcd_density» в разделе «Графика». Именно эта переменная отвечает за значение DPI, а после знака равенства мы можем видеть текущий номер.
Мы меняем его, например, с 320 до 280, а затем оставляем издание со стрелкой в верхнем левом углу. Когда приложение спрашивает нас, хотим ли мы сохранить изменения, мы подтверждаем кнопкой Да. Изменения вступят в силу после перезагрузки телефона.
Читайте также: