Щільність екрану в Android, ArtRoman
Задумався я якось: різні пристрої з різними розмірами екрана (фізичні розміри) за однакової кількості пікселів відображають різну кількість інформації. Чому так відбувається? Просто у пристрої вказано щільність екрана, яка залежить від відношення фізичного розміру екрана до розміру зображення. Наприклад, у HTC Desire використовується значні 240. Ми його можемо змінити, отримавши картинку планшетника з великим екраном (наприклад, при значенні 140), або картинку бюджетника з маленьким екраном (при значенні 300). Хоча все це крайнощі, але насправді, значення 200 замість стандартних 240 на екрані Desire, на мій погляд, виглядає приємніше: вміщується більше інформації, елементи управління (випадають списки тощо) не займають так багато місця на екрані і т.д. . Змінюючи значення в більшу сторону, можна, наприклад, полегшити роботу з апаратом для людей з ослабленим зором.
Саме значення зберігається у файлі /system/build.prop, у рядку «ro.sf.lcd_density=240», за наявності повного доступу до файлової системи (рута) можна просто змінити значення та перезаписати файл.
З іншого боку, це значення можна записати у часову пам'ять, навіть без рут-доступу. Зміна буде збережена до першого перезавантаження. Це і плюс (безпечно), і мінус (після перезавантаження треба знову робити дії), але мене влаштовує. Для отримання і записів подібних значень використовується команда getprop і setprop, відповідно, але писати треба не ro.* (на те він і ro — read only), а в qemu: setprop qemu.sf.lcd_density
Після цього треба перезавантажити «графічну оболонку» для отримання результату (пам'ятаємо, що при повному перезавантаженні втрачаємо зміни?). За наявності рута можна скористатися командою killall system_server, без рута можна виконатизупинку з наступним запуском оболонки послідовними командами stop і start (або adb stop і adb start, якщо апарат дозволить).
Звичайно, для подібних дій є і готові програми, наприклад, платна та безкоштовна, але їм теж потрібен рут.
Нижче можна побачити три вікна (екран налаштувань, головний екран маркету та список додатків) при різних налаштуваннях щільності: 140, 160, 180, 200, 220, 240, 300. Нагадаю, що всі результати отримані на екрані мого HTC Desire з діагоналлю ,7″ при роздільній здатності 480×800 пікселів.
























Але все має межі. Наприклад, при density=100 можна уявити, що тримаєш у руках величезний планшет, але працювати у такому режимі деякі програми вже відмовляються