2013-02-26 4 views
1

A vertical screen; probably of an average android phoneAndroid макета обертывания с размерами элементами переменных

A wider screen; tablet or rotated phone(landscape)

Я хочу иметь swipable вкладки главного экрана те, которые имеют резюме категории они принадлежат. (Например, "8 из Избранного", "8 новейших", "8 из недавно посещенных" ...

(Немного похож на Windows 8 Grids)

Это легко сделать это для Windows, Телефон как размер экрана хорошо известен, поэтому я могу вручную добавлять элементы (виды, кнопки и т. Д.) В определенные местоположения напрямую.

Однако на стороне Android я не могу сделать это легко вручную, так как изменения размера экрана много от устройства к устройству.

На этот вопрос встает вопрос: Каков наилучший способ организовать такой вид и как я могу это сделать с помощью t он код, который динамически ограничен размером экрана? (Минимальный уровень SDK: 11+)

+0

Исправлены ли ваши # строки/столбцы? – lokoko

+0

@lokoko зависит от размера экрана: слева направо, сверху вниз. Поэтому мне кажется, что число строк/столбцов не фиксировано. (На телефоне Windows он фиксирован, 5 строк, 3 столбца (где строка (0,1) + col (0,1) является наибольшим основным квадратом) – frankish

+0

Вы хотите добавить строки/столбцы в зависимости от экрана? – lokoko

ответ

0

Добавьте <support-screens> в манифесте, как показано ниже:

<supports-screens android:resizeable=["true"| "false"] 
      android:smallScreens=["true" | "false"] 
      android:normalScreens=["true" | "false"] 
      android:largeScreens=["true" | "false"] 
      android:xlargeScreens=["true" | "false"] 
      android:anyDensity=["true" | "false"] 
      android:compatibleWidthLimitDp="integer" 
      android:largestWidthLimitDp="integer"/> 

Советы для создания последовательных макетов (для указанного расположения, а):

  1. Dont трудно -код любых параметров макета, такие как layout-width, layout-height и т.д ..
  2. Dont использовать «px» .use «sp» для текста размера и "dp "Для layout-width, layout-height и т.д.
  3. Воспользоваться RelativeLayout и LinearLayout и не использовать AbsoluteLayout как это осуждается.
  4. Используйте ScrollView везде, где необходимо для layouts, поскольку он поддерживает singleView.

Для получения дополнительной информации ознакомьтесь с документами разработчика Android от Support Multiple Screens.

+0

Спасибо за ваш ответ, а не только за определение возможности поддержки приложения для разрешения нескольких экранов, я ищет способ создать указанный макет. – frankish

+0

см. мой отредактированный ответ .. следуйте этим советам и создайте необходимый макет –

+0

Я думаю, что нет способов определить ширину и высоту в процентах, не так ли?Это заставляет меня программно генерировать представления и задавать ширину, высоту и местоположение в соответствии с «значением плотности» getWindowManager(). GetDefaultDisplay(). GetMetrics (metrics); Правильно? – frankish

2

Чтобы выделить% от пространства экрана вы могли бы попробовать что-то вроде этого:

<LinearLayout> 
    <TextView android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="4"> 
    <TextView android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="6"> 
</LinearLayout> 

Это тогда означает, что первый TextView бы 40% от ширины экранов и sceond бы 60%.

+0

Спасибо! Итак, как я могу смешивать это с моим первым вопросом? Я имею в виду, Обертывание сетки с переменным размером. Я думаю, что мне нужно вручную добавлять элементы в RelativeLayout с верхними и левыми значениями. Но в этом случае я не могу использовать веса. Поэтому мне приходится вычислять плотность Dpi и вручную позиционировать элементы. Правильно? – frankish

+0

Для каждого представления, которое вы создаете программно, при настройке параметров макета можно указать третий параметр - вес. Таким образом, вы можете выбрать количество столбцов в зависимости от ширины экрана или плотности. – lokoko

+0

Это работало? – lokoko

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