Щільність екрану в 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 пікселів.

android
екрану
android
щільність
android
щільність
екрану
щільність
android
екрану
щільність
екрану
android
android
екрану
щільність
екрану
щільність
android
android
екрану
android
android
екрану

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