Я пытаюсь решить проблему макета - я тестировал этот res/layout/my.xml на Moto G, и все было хорошо, но когда я протестировал его на Nexus S, Кнопки были слишком большими. Я попробовал res/layout-xhdpi/my.xml (так как Moto G - xhdpi, а Nexus - только hdpi), но всегда один из макетов надувается на обоих, никогда не отличается на каждом (для xhdpi я теперь использую кнопку с текстом, чтобы я можно сразу увидеть, если он продолжал):Nexus S и Moto G - не могут отличить макеты
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical"
tools:context=".MainActivity" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:cropToPadding="true"
android:src="@drawable/pil2" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:height="90dp"
android:minWidth="150dp" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button2"
android:height="80dp"
android:minWidth="150dp" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_alignParentTop="true"
android:height="130dp"
android:minWidth="150dp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button4"
android:layout_centerHorizontal="true"
android:height="90dp"
android:minWidth="150dp" />
</RelativeLayout>
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="xxxx"
ads:adSize="BANNER" />
</LinearLayout>
Использование квалификаторов набора ресурсов плотности (например, '-hdpi') на любых ресурсах, отличных от ресурса, является серьезным запахом кода, так как почти уверен, что вы не получите то, что хотите. Помимо этого, используйте Hierarchy View для определения того, что в ваших правилах размещения вызывает ваши трудности. – CommonsWare
Вот как это выглядит на Nexus S: http://oi58.tinypic.com/oko8l1.jpg, и так оно выглядит на Nexus 5: http://oi59.tinypic.com/1zlgjud.jpg Конечно, кнопки maade прозрачный после того, как они работают правильно. Первая кнопка сверху не имеет функции - просто placeholder вместо margingTop. Я постоянно пересматриваю свой пользовательский интерфейс, но не могу получить эту вещь, поэтому на любом устройстве он будет работать правильно. –
Казалось бы, вы пытаетесь сделать «кнопки», отображаемые на этом PNG/JPEG/любом фоне, щелчком мыши. Ваш подход не будет надежным, так как кнопки не имеют ничего общего с этим общим фоном. – CommonsWare