Android - Как создавать темы, зависящие от разрешения экрана?

Я создал пользовательскую тему, чтобы определить размер строки заголовка и стиль ее фона. Это код:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="customTheme" parent="android:Theme"> 
        <item name="android:windowTitleSize">53px</item>
        <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>   
            <item name="android:windowContentOverlay">@android:color/transparent</item>
    </style> 
</resources>

Проблема в том, что я устанавливаю фиксированный размер для этой строки заголовка вместо того, чтобы использовать разные значения в зависимости от того, использует ли устройство значки hdpi/mdpi или ldpi.

Что здесь нужно сделать? Я попытался добавить тему и стили в каталог drawable, но, очевидно, это неправильно.

Спасибо!


person Amokrane Chentir    schedule 10.06.2011    source источник


Ответы (2)


Рассматривали ли вы процентную ширину ИЛИ независимые от плотности пиксели (dp)? Взгляните на единицы измерения Android.

person Tanner Perrien    schedule 10.06.2011
comment
Совсем не плохая идея. Спасибо! - person Amokrane Chentir; 10.06.2011

Я не знаю, поможет ли это вам, но вы можете определить программно плотность экрана. Я не работал с пользовательской строкой заголовка, поэтому не знаю, можно ли изменить размер заголовка программно.

        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        switch(metrics.densityDpi){
             case DisplayMetrics.DENSITY_LOW:
                 **
                        break;
             case DisplayMetrics.DENSITY_MEDIUM:
                 **
                         break;
             case DisplayMetrics.DENSITY_HIGH:
                **
                         break;
        }
person artouiros    schedule 10.06.2011
comment
Это могло быть возможным решением. Но Таннер прав, используя dp вместо px. - person Amokrane Chentir; 10.06.2011