Ответ 1
@forcelain Я думаю, вам нужно проверить этот Google IO Pdf для дизайна. В этом pdf перейдите на страницу №: 77, в которой вы найдете, как предлагалось использовать dimens.xml для разных устройств android для примера, см. Ниже структуру:
res/values/dimens.xml
res/values-small/dimens.xml
res/values-normal/dimens.xml
res/values-large/dimens.xml
res/values-xlarge/dimens.xml
для примера, который вы использовали ниже dimens.xml в значениях.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">18sp</dimen>
</resources>
В другой папке значений вам нужно изменить значения для вашего размера текста.
Примечание.. Как указано в @espinchi, с Android 3.2 были отменены малые, нормальные, большие и xlarge в пользу:
Объявление макетов планшета для Android 3.2
Для первого поколения планшетов, работающих под управлением Android 3.0, способ объявить планшеты планшета должен был помещать их в каталог с xlarge (например, res/layout-xlarge/). В для размещения других типов таблеток и размеров экрана в в частности, 7-дюймовые планшеты - Android 3.2 представляет новый способ указания ресурсов для более дискретных размеров экрана. Новая методика основана на на объем пространства, необходимого вашему макету (например, 600dp ширины) вместо того, чтобы пытаться сделать ваш макет подходящим для групп обобщенного размера (например, большой или большой).
Причина разработки для 7-дюймовых планшетов сложна при использовании обобщенные группы размеров - это то, что 7-дюймовый планшет технически в одном и том же группы в качестве 5-дюймовой трубки (большая группа). Хотя эти два устройства кажущиеся близкими друг к другу по размеру, объем пространства для пользовательский интерфейс приложения существенно отличается, как и стиль пользователя взаимодействие. Таким образом, экран 7 "и 5" не всегда должен использовать один и тот же раскладка. Чтобы вы могли предоставить различные макеты для эти два вида экранов, Android теперь позволяет вам указать свой ресурсы макета на основе ширины и/или высоты, которые фактически доступный для вашего макета приложения, указанный в единицах dp.
Например, после того, как вы разработали макет, который хотите использовать для устройства с планшетом, вы можете определить, что макет останавливается хорошо работает, когда экран имеет ширину менее 600dp. Этот порог таким образом, становится минимальным размером, который требуется для вашего планшета планшета. Таким образом, вы можете теперь указать, что эти ресурсы макета должны быть используется только тогда, когда имеется не менее 600dp ширины пользовательский интерфейс приложения.
Вы должны либо выбрать ширину и дизайн для вас, как ваш минимальный размер, или проверить, какая минимальная ширина поддерживает ваш макет, полная.
Примечание. Помните, что все цифры, используемые с этими API-интерфейсами нового размера, значения плотности пикселей (dp) и размеры макета также всегда следует определять с помощью единиц dp, потому что то, что вам нужно about - количество пространства экрана, доступного после системы учитывает плотность экрана (в отличие от использования необработанного пикселя разрешающая способность). Для получения дополнительной информации о независимых по плотности пикселей, читать термины и понятия, ранее в этом документе. Использование нового размера классификаторы
Различные конфигурации ресурсов, которые вы можете указать на основе пространство, доступное для вашего макета, суммировано в таблице 2. Эти новые квалификаторы предлагают вам больше контроля над конкретными размерами экрана ваше приложение поддерживает, по сравнению с традиционным размером экрана групп (малых, нормальных, больших и больших).
Примечание. Размеры, указанные вами с помощью этих классификаторов, не являются фактические размеры экрана. Скорее, размеры для ширины или высоты в dp, которые доступны для вашего окна активности. Android система может использовать некоторый экран для пользовательского интерфейса системы (например, системы в нижней части экрана или в строке состояния вверху), поэтому некоторые экрана может быть недоступна для вашего макета. Таким образом, размеры вы заявляете, что должны быть конкретно о размерах, необходимых вашему activity - система учитывает любое пространство, используемое системным интерфейсом, когда объявив, сколько места он предоставляет для вашего макета. Также будьте осторожны, панель действий считается частью окна вашего приложения пространство, хотя ваш макет не объявляет его, поэтому он уменьшает доступное для вашего макета, и вы должны учитывать его в своем дизайн.
Таблица 2. Новые квалификаторы конфигурации для размера экрана (введены в Android 3.2). Конфигурация экрана Значения классификатора Описание smallestWidth swdp
Примеры: sw600dp sw720dp
Фундаментальный размер экрана, о чем свидетельствует кратчайший размер доступной области экрана. В частности, smallestWidth - это самая короткая из доступных на экране высота и ширину (вы также можете думать об этом как о "минимально возможной ширине" для экран). Вы можете использовать этот квалификатор, чтобы гарантировать, что независимо от текущая ориентация экрана, ваше приложение, по крайней мере, dps ширины, доступной для его пользовательского интерфейса.
Например, если ваш макет требует, чтобы его наименьшее измерение площадь экрана должна быть не менее 600 dp в любое время, тогда вы можете использовать эту квалификатор для создания ресурсов макета, res/layout-sw600dp/. система будет использовать эти ресурсы только тогда, когда наименьшее измерение доступный экран составляет не менее 600dp, независимо от того, будет ли 600dp сторона - это воспринимаемая пользователем высота или ширина. Наименьшая ширина - это фиксированный размер экрана, характерный для устройства; устройства smallestWidth не изменяется при изменении ориентации экрана.
Наименьшая ширина устройства учитывает декорации экрана и пользовательский интерфейс системы. Например, если устройство имеет некоторый постоянный пользовательский интерфейс элементы на экране, которые учитывают пространство вдоль оси smallestWidth, система объявляет наименьшую ширину меньше чем фактический размер экрана, потому что это пиксели экрана, а не доступный для вашего пользовательского интерфейса.
Это альтернатива обобщенным спецификаторам размера экрана (маленький, нормальный, большой, xlarge), который позволяет вам определить дискретный номер для эффективного размера, доступного для вашего пользовательского интерфейса. С помощью smallestWidth для определения общего размера экрана полезен, потому что ширина часто является движущей силой при проектировании макета. Пользовательский интерфейс часто прокручиваются по вертикали, но имеют довольно жесткие ограничения на минимальное пространство, которое требуется горизонтально. Доступная ширина также ключевым фактором при определении того, следует ли использовать однопанельный макет для планшеты или многоуровневую компоновку для планшетов. Таким образом, вы, вероятно, о том, какая минимально возможная ширина будет на каждом устройстве. Доступная ширина экрана wdp
Примеры: w720dp w1024dp
Определяет минимальную доступную ширину в единицах dp, при которых ресурсы должен использоваться - определяется значением. Соответствующая система значение для ширины изменяется, когда переключатели ориентации экрана между пейзажем и портретом, чтобы отразить текущую фактическую ширину которые доступны для вашего пользовательского интерфейса.
Часто бывает полезно определить, следует ли использовать многоуровневую компоновку, потому что даже на планшетном устройстве вам часто не нужно то же самое многоуровневая макет для портретной ориентации, как и для пейзажа. Таким образом, вы можете использовать это, чтобы указать минимальную ширину, необходимую для вместо использования как размера экрана, так и ориентации квалификаторы вместе. Доступная высота экрана hdp
Примеры: h720dp h1024dp и т.д.
Определяет минимальную высоту экрана в единицах dp, при которых ресурсы должен использоваться - определяется значением. Соответствующая система значение для изменения высоты при переключении ориентации экрана между пейзажем и портретом, чтобы отразить текущую фактическую высоту которые доступны для вашего пользовательского интерфейса.
Использование этого для определения высоты, необходимой вашему макету, полезно в так же, как wdp для определения требуемой ширины, вместо используя как размер экрана, так и ориентацию. Однако большинство приложениям не потребуется этот квалификатор, учитывая, что пользовательские интерфейсы часто прокручивают по вертикали и, таким образом, более гибкими с доступный, тогда как ширина более жесткая.
Использование этих квалификаторов может показаться более сложным, чем использование группы размера экрана, на самом деле это будет проще, если вы определите требования к вашему пользовательскому интерфейсу. Когда вы разрабатываете свой интерфейс, главное вы, вероятно, заботитесь о фактическом размере, при котором ваше приложение переключается между пользовательским интерфейсом в стиле телефонной трубки и пользовательским интерфейсом в стиле планшета, который использует несколько окон. Точная точка этого переключателя будет зависеть от вашего конкретный дизайн - возможно, вам нужна ширина 720dp для вашего планшета планшета, возможно, 600dp, или 480dp, или некоторое число между ними. С помощью эти квалификаторы в таблице 2, вы контролируете точный размер на который изменяется ваш макет.
Подробнее об этих классификаторах конфигурации размера см. Предоставление ресурсов. Примеры конфигурации
Чтобы помочь вам настроить некоторые из ваших проектов для разных типов устройства, вот некоторые цифры для типичной ширины экрана:
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 480dp: a tweener tablet like the Streak (480x800 mdpi). 600dp: a 7" tablet (600x1024 mdpi). 720dp: a 10" tablet (720x1280 mdpi, 800x1280 mdpi, etc).
Используя квалификаторы размеров из таблицы 2, ваше приложение может переключаться между различными ресурсами раскладки для телефонов и планшетов, используя любое число, которое вы хотите для ширины и/или высоты. Например, если 600dp наименьшая доступная ширина, поддерживаемая вашим планшетом планшета, вы можете эти два набора макетов:
res/layout/main_activity.xml # Для мобильных телефонов res/layout-sw600dp/main_activity.xml # Для таблеток
В этом случае минимальная ширина доступного пространства экрана должна быть 600dp, чтобы план табло был применен.
В других случаях, когда вы хотите изменить пользовательский интерфейс различают размеры, такие как 7 "и 10" таблетки, вы можете определить дополнительные макеты минимальной ширины:
res/layout/main_activity.xml # Для телефонов (меньше 600dp доступная ширина) res/layout-sw600dp/main_activity.xml # Для 7 "планшеты (600dp в ширину и больше) res/layout-sw720dp/main_activity.xml
Для 10-дюймовых планшетов (720dp в ширину и больше)
Обратите внимание, что предыдущие два набора примеров ресурсов используют" наименьшая ширина ", swdp, которая определяет наименьшую из экран с двух сторон, независимо от тока устройства ориентации. Таким образом, использование swdp - это простой способ указать общий размер экрана, доступный для вашего макета, игнорируя экран ориентации.
Однако, в некоторых случаях, что может быть важно для вашего макета, точно, сколько ширины или высоты в настоящее время доступно. Например, если у вас есть двухпанельный макет с двумя фрагментами бок о бок, вы может захотеть использовать его всякий раз, когда экран обеспечивает не менее 600dp ширина, независимо от того, находится ли устройство в альбомной или портретной ориентации. В этот случай, ваши ресурсы могут выглядеть так:
res/layout/main_activity.xml # Для телефонов (меньше 600dp доступная ширина) res/layout-w600dp/main_activity.xml # Мультипанель (любой экран с доступной шириной 600dp или более)
Обратите внимание, что второй набор использует квалификатор" доступной ширины", WDP. Таким образом, одно устройство может фактически использовать оба макета, в зависимости от по ориентации экрана (если доступная ширина не меньше 600dp в одной ориентации и менее 600dp в другой ориентация).
Если доступная высота вызывает у вас беспокойство, вы можете сделать то же самое используя квалификатор hdp. Или даже объедините wdp и hdp если вам нужно быть конкретным.