ДП подходит для телефона, но слишком мал для планшета в Android

Я работал над приложением, которое подходит для телефона, но теперь мне нужно, чтобы оно подходило для планшета. Проблема в том, что для того же самого dp он хорошо работает на телефоне, однако для планшета он слишком мал, я искал решение, подобное этому:

http://developer.android.com/design/style/metrics-grids.html

Обнаружил, что дп на планшете это двойной / тройной телефон. Итак, если я хочу определить размер настраиваемой панели действий, как показано ниже, как я могу установить ее на планшет? 60 dp подходит для телефона 4"~5", но слишком мал для 7"~10" планшета

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    <!-- API 11 theme customizations can go here. -->
    <item name="android:actionBarSize">60dp</item>
</style>

1 ответ

Решение

Способ обработки ресурсов Android позволяет разработчикам указывать различные размеры в зависимости от размеров экрана. В ваших макетах XML вы можете иметь:

<FrameLayout
    android:layout_width="@dimen/subtitle_container_width"
    android:layout_height="wrap_content">

...

</FrameLayout>

И это значение будет указано в разных папках, каждая из которых соответствует вашим потребностям.

Учитывая, что ваш res каталог имеет похожую структуру, как показано ниже:

res/
    values
    values-sw400dp
    values-sw720dp

Вы можете создать dimens.xml файл в каждой из этих папок, содержащий:

<resources>
    <dimen name="subtitle_container_width">(VALUE IN DP)</dimen>
</resources>

Android автоматически выберет для вас правильное значение во время выполнения. В этом примере у вас может быть определенный размер для устройств с наименьшей шириной 720dp и 400dp. Если устройство не имеет как минимум 400dp, значение по умолчанию в values папка будет использоваться.

Вы можете создать больше папок в соответствии с вашими потребностями, с различными размерами или модификаторами (наименьшее измерение X, минимальная высота Y и т. Д.).

Вы можете найти больше информации здесь: http://developer.android.com/guide/topics/resources/providing-resources.html

Другие вопросы по тегам