2016-04-15 10 views
0

So bearbeiten Sie XML-Dateilayout. Der gesamte Bildschirm ist identisch.Design-Layout-Anzeige ist nicht das gleiche

Bildschirmgröße 4,7 ", 5,0" Anzeigegenauigkeit. Aber Bildschirm anders als das. Verzerrung anzeigen. Außer Bildschirmtablett.

Hilf mir, es zu beheben.

screen_main.xml

<FrameLayout 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="jp.vertice.test.MainScreenFragment"> 

    <!-- TODO: Update blank fragment layout --> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#51c8fc"> 

     <ImageView 
      android:layout_width="200dp" 
      android:layout_height="195dp" 
      android:id="@+id/imageView2" 
      android:src="@mipmap/ic_launcher" 
      android:background="#fc0c0c" 
      android:layout_marginLeft="18dp" 
      android:layout_marginStart="18dp" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <ImageButton 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/btn1" 
      android:layout_alignParentTop="true" 
      android:layout_alignLeft="@+id/btn3" 
      android:layout_alignStart="@+id/btn3" /> 

     <ImageButton 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/btn2" 
      android:layout_below="@+id/btn1" 
      android:layout_alignLeft="@+id/btn1" 
      android:layout_alignStart="@+id/btn1" /> 

     <ImageButton 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/btn5" 
      android:layout_below="@+id/btn2" 
      android:layout_alignLeft="@+id/imageView2" 
      android:layout_alignStart="@+id/imageView2" 
      android:layout_marginTop="5dp" /> 

     <ImageButton 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/btn4" 
      android:layout_alignTop="@+id/btn5" 
      android:layout_toRightOf="@+id/btn5" 
      android:layout_toEndOf="@+id/btn5" 
      android:layout_marginLeft="9dp" 
      android:layout_marginStart="9dp" /> 

     <ImageButton 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/btn3" 
      android:layout_alignTop="@+id/btn4" 
      android:layout_toRightOf="@+id/btn4" 
      android:layout_toEndOf="@+id/btn4" 
      android:layout_marginLeft="10dp" 
      android:layout_marginStart="10dp" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="205dp" 
     android:background="#F4F4F4" 
     android:layout_gravity="bottom"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="YYYY.MM.DD" 
      android:id="@+id/txt1" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="22dp" 
      android:layout_marginStart="22dp" 
      android:layout_marginBottom="173dp" /> 

     <TextView 
      android:layout_width="230dp" 
      android:layout_height="50dp" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
      android:id="@+id/text2" 
      android:layout_alignTop="@+id/txt1" 
      android:layout_alignLeft="@+id/txt1" 
      android:layout_alignStart="@+id/txt1" 
      android:layout_marginTop="25dp" /> 

     <Button 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="BUTTON" 
      android:id="@+id/btn6" 
      android:layout_marginLeft="11dp" 
      android:layout_marginStart="11dp" 
      android:layout_alignTop="@+id/text2" 
      android:layout_toRightOf="@+id/text2" 
      android:layout_toEndOf="@+id/text2" /> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="20dp" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="FOOTER" 
      android:id="@+id/textView2" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:textSize="10sp" 
      android:textStyle="bold" 
      android:textAlignment="center" 
      android:gravity="center_vertical" 
      android:background="#FFFFFF" /> 

    </RelativeLayout> 
</FrameLayout> 

Display is not the same

+0

Was genau wollen Sie sehen? Ich meine, was ist der richtige? Du meinst das 4.7 "Beispiel ist was du willst für jedes Gerät? Meinst du" besonders "das Tablet? – miva2

Antwort

0

Sie versuchen, ein Gridlayout verwenden können. Auf diese Weise füllen die Bildspalten den gesamten Bildschirm aus.

0

Sie können nicht mit dp und erwarten das gleiche Ergebnis auf verschiedenen arbeiten, wenn Sie für alle Geräte gleiche Anzeige möchten Sie mit weightSum und weight hier ist ein kleines Beispiel

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:weightSum="2"> 


     <LinearLayout 
      android:id="@+id/layout1" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

     <LinearLayout 
      android:id="@+id/layout2" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
</LinearLayout> 
0

nicht funktionieren kann Verwenden Sie hier Frame-Layout, da Frame-Layout zum Anzeigen der Einzelansicht verwendet wurde.

0

Ich sehe Sie verwenden feste DP-Werte für layout_width und layout_height. dp bedeutet Dichte unabhängig Pixel. Es ist kein größenunabhängiges Pixel. Die dp stellt sicher, dass Ihr Layout auf Geräten gleicher Größe, aber unterschiedlicher Pixeldichte gleich aussieht. Bei größeren Geräten wird es nicht gleich aussehen. Wenn Sie möchten, dass es auf größere Geräte skaliert wird, müssen Sie und wrap_content verwenden. Verwenden Sie die Leistung des relativen Layouts, um auch Elemente auf der rechten Seite des Bildschirms zu platzieren.

Sie können auch separate Layoutdateien für unterschiedlich große Geräte erstellen. So können Sie es abhängig von der Größe anpassen. Sie tun dies, indem Sie einen neuen Layoutordner mit dem Namen layout-sw600dp/ (oder einer beliebigen Zahl) erstellen, der nur auf Geräten verwendet wird, die mindestens die von Ihnen angegebene Breite haben (also in diesem Beispiel 600dp). Stellen Sie sicher, dass Ihre Layoutdatei in diesem Ordner den gleichen Namen hat wie im normalen Ordner.

Sie finden sehr nützliche Informationen in der Dokumentation: here und here.

Verwandte Themen