2014-01-24 4 views
0

Я разрабатываю приложение для Android, которое запускается на каждом экране размера. Для этого я создал папку drawable, drawable-ldpi, drawable-mdpi, drawable-hdpi and drawable-xhdpi. И для макетов, создающих папки layout, layout-small, layout-normal, layout-large and layout-xlarge. Для значений я создаю values, values-small, values-normal, values-large, values-xlarge. Это первый раз, когда я работаю над поддержкой нескольких экранов. И в Интернете так много ссылок, которые объясняют множественную поддержку экрана по-разному. Поэтому у меня мало вопросов.Поддержка нескольких экранов на основе размера экрана

  1. Существует ли какая-либо другая папка, кроме этих папок?
  2. Я правильно?
  3. Как преобразовать разрешение от ppi к dpi?

И главное, что я создаю приложение только в портретном режиме.

Edit-

Сначала я создаю значение папку с ldpi, mdpi, hdpi. Но устройства относятся к тем же dpi, но имеют разные размеры, создающие проблему. Поэтому я решил создать такие папки, как указано выше.

+1

Следуйте по этой ссылке http://developer.android.com/guide/practices/screens_support.html для получения дополнительной информации –

ответ

0

Dp - независимые пиксели плотности и используются для обобщения количества пикселей на экране. Эти обобщенные цифры взяты из

http://developer.android.com/guide/practices/screens_support.html

экранов XLarge, по крайней мере 960dp х 720dp больших экранов, по меньшей мере 640dp х 480dp нормальных экранов, по меньшей мере 470dp х 320dp небольших экранов, по меньшей мере 426dp х 320dp значения Обобщенная ДПИ для экранов:

ldpi Resources for low-density (ldpi) screens (~120dpi) 
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.) 
hdpi Resources for high-density (hdpi) screens (~240dpi). 
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi). 
Therefore generalised size of your resources (assuming they are full screen): 

ldpi 
Vertical = 426 * 120/160 = 319.5px 
Horizontal = 320 * 120/160 = 240px 
mdpi 
Vertical = 470 * 160/160 = 470px 
Horizontal = 320 * 160/160 = 320px 
hdpi 
Vertical = 640 * 240/160 = 960px 
Horizontal = 480 * 240/160 = 720px 
Edit - adding xhdpi as they are becoming more popular 

xhdpi 
Vertical = 960 * 320/160 = 1920px 
Horizontal = 720 * 320/160 = 1440px 
+0

Просьба предоставить конкретные ответы в соответствии с моими вопросами. –

0
values-w360dp 
    values-w360dp-xhdpi 
    values-w360dp-xxhdpi 


drawable-w360dp 

для лучшего ведения, прочитайте эту тему.

http://developer.android.com/guide/practices/screens_support.html

public static int convertDpToPx(int dp,Context context) 
    { 
     float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()); 
     return (int)px; 
    } 
    public static int convertPxoDp (int pixel,Context context) 
    { 
     float density = context.getResources().getDisplayMetrics().density; 
     int minHeight = (int) (pixel*density + 0.5f); 
     return minHeight; 
    } 
+0

Просьба предоставить конкретные ответы. –

+0

использование другой папка "w360dp" – RVG

0

Держите его просто глуп

Вы already aware об использовании different folders to provide alternative resources и изображениях в application.so просто пойти с ним. add it к вашему приложению.

и теперь следующий шаг, Просто создайте свои файлы макета и посмотрите на его Graphical Layout для Preview All Screen Sizes.

Теперь Check->Analyse->Change if required

И вы сделали :-)

+0

спасибо. Правильно ли я поступаю? –

+0

Да, вы поступаете правильно. –

+0

И мне нужны другие папки, кроме тех? –

0

Существует потребность в любой другой папке, чем эти папки?

Нет необходимости накладывать какие-либо дополнительные папки на самом деле. Создавайте их только в том случае, если они вам нужны, и только если вы хотите предоставить другой макет/ресурсы для конкретного устройства.Например, если у вас есть представление списка, чьи элементы открывают подробное представление (активность) на телефоне, вам может понадобиться отдельный макет для планшетов (например, xlarge), который имеет только 1 активность с двумя фрагментами бок о бок.

Имею ли я право?

Вы можете проверить его сейчас? У вас есть проблемы с запуском приложения на разных устройствах?

Как преобразовать разрешение от ppi к dpi?

не может дать вам точную формулу, но вы можете найти более подробную информацию о DPI и PPI в википедии.

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