2013-05-29 3 views
0

Я сделал простой макет, но у меня проблемы с его оптимизацией для разных размеров экрана. Я сделал это хорошо на устройстве 5.1, но кнопки были маленькими на 10,1 и большими на экране 3.2. Я пробовал неудачу и был расстроен множеством возможностей, но не мог найти какую-либо работу. Любые идеи были бы благодарны вам. Вот код для моего основного макета, который отлично смотрится на 5,1-дюймовом экране.Android 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" 
tools:context=".Home" 
android:background="@drawable/bg"> 

<Button 
    android:id="@+id/playB" 
    android:layout_width="300dp" 
    android:layout_height="85dp" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true 
    android:background="@drawable/menu_button"/> 

<Button 
    android:id="@+id/aboutB" 
    android:layout_alignLeft="@+id/playB" 
    android:layout_below="@+id/playB" 
    android:layout_marginTop="45dp"   
    android:layout_width="300dp" 
    android:layout_height="85dp" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/menu_button"/> 

<Button 
    android:id="@+id/settingsB" 
    android:layout_alignLeft="@+id/playB" 
    android:layout_below="@+id/aboutB" 
    android:layout_marginTop="45dp" 
    android:layout_width="300dp" 
    android:layout_height="85dp" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/menu_button"/> 

ответ

0

Использование dp - это правильный путь. Это не будет постоянный размер, потому что AOS будет масштабировать dps, используя множитель в соответствии с плотностью экрана. (btw dip == dp они абсолютно одинаковы), поэтому dps являются независимыми от плотности. Однако масштабирования недостаточно. Поэтому вам нужно создать отдельные ресурсы для разных экранов, и я могу сказать, что поддержка нескольких экранов - очень большая боль в da @ $$. Похоже, только один хороший и правильный способ заключается в использовании OpenGL ...
Вы могли бы нашли следующие ссылки полезны:
How to use resource qualifier on layouts to distinguish smartphones like HTC Desire and Samsung Galaxy Nexus
image size (drawable-hdpi/ldpi/mdpi/xhdpi)
Avoid Multiple Drawable Sets (hdpi/mdpi/ldpi)
Widget Layout for 960x540 and 854x480
getDimension()/getDimensionPixelSize() - mutliplier issue
http://www.findbestopensource.com/product/svg-android

+0

Спасибо всем, что я все помог кучам. Сорта new для android так рада, что есть такие люди, как вы, чтобы помочь мне. Я знаю, что может быть трудно получить размер приложения для разных экранов, но я также знаю, что он создает или ломает репутацию приложений. Еще раз спасибо!!! – user1576726

+0

не забудьте выбрать ответ, когда вы сможете это сделать. – Stan

0

Вы использовали фиксированные dp размер для ваших кнопок, так что они будут постоянным размером. Это может сделать их слишком большими на маленьком экране и слишком мало на большом экране. Я настоятельно рекомендую вам изучить, как разработать для multiple screen sizes. Что касается вашей проблемы, вы можете: 1) установить размер кнопки, используя соотношение ширины кнопок и ширины экрана. Это необходимо сделать программно, чтобы проверить размеры устройств; 2) создать различные макеты для разных экранов, например this.

+0

Эй великолепно звучит I может попытаться найти, как правильно программировать макет. Любые ссылки или идеи о том, где я могу найти определенную информацию по этой теме? Спасибо за ответ, очень оцененный! – user1576726

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