2015-04-18 4 views
8

У меня есть следующие макеты в моем проекте Android. Потому что я хочу поддерживать представление для разных устройств и вкладок для Android.Поддержка телефона и планшета для расстояния между кнопками на макете

layout-large 
layout-normal 
layout-small 
layout-xlarge 

В App Gradle, было установлено с мин. 9 - 22.

Когда я тестирую на 5-дюймовых телефонах, 7-дюймовых планшетах и ​​телефонах размером менее 5 дюймов, я вижу 5-дюймовый телефон и 7-дюймовый планшет, он всегда использует «макет-большой», 2 кнопки, расположенные в центре экрана по горизонтали, не дают правильного расстояния в планшете, он показывает с правильным интервалом в 5-дюймовом телефоне, как и ожидалось. Не могли бы вы посоветовать мне, как позаботиться о расположении кнопок в макете, чтобы поддерживать 5-дюймовый телефон и 7-дюймовый макет с одним макетом. Оглядываясь, есть так много предложений и сбивает с толку много ... Когда я смотрел андроидную ссылку, Android developer link не мог понять.

макета large.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MyActivity" 
    android:background="@drawable/bg"> 

    <Button 
     android:layout_width="70px" 
     android:layout_height="70px" 
     android:id="@+id/PlayPauseButton" 
     android:onClick="doClick" 
     android:layout_marginLeft="81dp" 
     android:layout_marginStart="81dp" 
     android:layout_marginBottom="169dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <Button 
     android:layout_width="70px" 
     android:layout_height="70px" 
     android:id="@+id/StopButton" 
     android:onClick="stopAudio" 
     android:layout_alignTop="@+id/PlayPauseButton" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="102dp" 
     android:layout_marginEnd="102dp" /> 

</RelativeLayout> 

ОБНОВЛЕНО:

Я задаю свой вопрос еще проще. У меня 3,2-дюймовый телефон, 4,2-дюймовый телефон, 4,3-дюймовый телефон, 4,5-дюймовый телефон, 5-дюймовый телефон и один 7-дюймовый планшет/я хочу поддерживать мое приложение во всех этих устройствах. Я установил min 9 max 22 в градиенте. Что мне теперь делать для создания папок «layout» и «drawable»? Я смущаюсь, видя ссылки в андроиде и других ссылках на форум. У меня есть Relative Layout во всех макетах, и он устанавливается с match_parent ширины и высоты. Должен ли я даже устанавливать статическую ширину и высоту здесь? - Stella только сейчас

+0

Ознакомьтесь с [Ссылка для разработчиков Android] (http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html) и [Ссылка 2] (http: /stackoverflow.com/a/15039367/2032561) – Bharatesh

ответ

0

Для разных макетов для разных размеров экрана попробуйте называть папку макета чем-то вроде layout-sw600dp вместо layout-large.

Не могли бы вы посоветовать мне, как позаботиться о расположении кнопок в макете, чтобы поддерживать 5-дюймовый телефон и 7-дюймовый макет с единой компоновкой.

Try имеет размер объявленный (<dimen name="dimenName">30dp</dimen>) в обоих values/dimens.xml и values-sw600dp/dimens.xml с соответствующими значениями и доступом к ним с @dimen/dimenName в макете.

Если вам нужна дополнительная помощь, предоставьте несколько снимков экрана. Вы также должны попытаться использовать dp единиц вместо px.

+0

У меня есть первое сомнение, что будет иметь значение, если я использую layout-sw600dp вместо layout-large? Что мне делать с макетом других папок - нормальный макет-малый и макет-xlarge? – Stella

+0

Ответ @Stella ipavl правильный. Вся информация, в которой вы нуждаетесь, находится в документации. Читайте http://developer.android.com/guide/practices/screens_support.html – Zerp

+0

@Stella в основном макет-нормальный/маленький/большой ... и т. Д. Был старым, неточным способом поддержки разных размеров экрана, layout-swXXXdp - это путь с 3.x – Kai

0

Согласно Platform Versions, только 6,8% устройств ниже API 4.0.3 и в соответствии с Screen Sizes and Densities только у 4,4% меньше экранов нормального размера.

  • Таким образом, вы можете УДАЛИТЬlayout-small папку и сделать свой minSdkVersion в .
  • Теперь вы можете начать использовать новую группу для создания макетов, то есть sw<N>dp.

Как цитирует here

Причина проектирования для 7" таблетки сложно при использовании групп обобщенных размера является то, что 7" таблетка является технически в той же группе, как трубки 5" (большой группа). в то время как эти два устройство, казалось бы, близко друг к другу по размеру, объем пространства для пользовательского интерфейса приложения, значительно отличается, как стиль взаимодействия с пользователем.

Вы должны определить различные макеты для 5 "и 7" устройств, поэтому вы должны сделать макет для 7 "в папке layout-sw600dp и все можно поместить в папку layout (если вы не сделаете layout-sw720dp для 10-дюймовых планшетов).

Если требуется макет для 5" устройств и < 5" устройств быть разными, попробуйте сделать layout-large для 5" устройств и просто layout для < 5" устройств.

+0

Я задаю свой вопрос еще более простым. У меня 3,2-дюймовый телефон, 4,2-дюймовый телефон, 4,3-дюймовый телефон, 4,5-дюймовый телефон, 5-дюймовый телефон и один 7-дюймовый планшет/я хочу поддерживать мое приложение во всех этих устройствах. Я установил min 9 max 22 в градиенте. Что мне теперь делать для создания папок «layout» и «drawable»? Я смущаюсь, видя ссылки в андроиде и других ссылках на форум. У меня есть Relative Layout во всех макетах, и он устанавливается с match_parent ширины и высоты. Должен ли я даже устанавливать статическую ширину и высоту здесь? Как узнать настройку «макета» для других телефонов, что должно быть «DP»? – Stella

+0

Другой вопрос: если я сохраню «макет-большой», могут ли ресурсы автоматически использоваться для 5-дюймовых телефонов? если я сохраню «макет», можно ли автоматически использовать ресурсы для <5-дюймовых телефонов? если я сохраню «layout-sw600dp», можно ли автоматически использовать ресурсы для вкладок 7 дюймов? – Stella

+0

'layout' будет работать для 3.2", 4.2 ", 4.3" и 4.5 ". Попробуйте то же самое с 5 ", также если он не выглядит хорошо, добавьте' layout-large' для 5 ". 'layout-sw600dp' необходим для 7". Аналогичным образом вы можете различать папку 'drawables'.
Вы также можете увидеть ---> Если макету не требуется определенная ширина (в DP) для элементов, вы можете используйте 'LinearLayout' и' weight', они помогают сделать очень сложную компоновку одинаковой для всех экранов. –

0

Вы должны сделать папку просто доступной, а затем поместить все изображение в это. Это общая папка для всех типов. Затем вы можете взять свою кнопку в относительной компоновке и установить центральную кнопку в центре по горизонтали = истина и задать высоту и ширину с заполнением родительского элемента и установить маржу слева и справа 20dp для установки в центре.

Смежные вопросы