2015-05-30 13 views
9

Problem: Layout wird auf verschiedenen Geräten auf dem Bildschirm mit der gleichen Auflösung unterschiedlich angezeigt. Ich testete es auf Samsung Galaxy S4 (1080x1920) und auf LG G2 (1080x1920). Es ist die gleiche Auflösung, also warum Layout wird auf jedem Gerät anders angezeigt?Layout wird auf verschiedenen Geräten auf dem Bildschirm mit der gleichen Auflösung unterschiedlich angezeigt

Ich habe alle im Layout-Ordner und keine anderen Layouts für andere Auflösungen.

Hier sind Bildschirme:

  • Samsung Galaxy S4

http://www.image-share.com/ijpg-2963-272.html

  • LG G2

http://www.image-share.com/ijpg-2963-271.html

91.363.210

EDIT # 1

<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" 
android:id="@+id/layoutMain" 
tools:mContext="com.test.app.flock.mActivity"> 

<ImageView 
    android:id="@+id/imageViewImageBackground" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:visibility="gone" /> 

<View 
    android:id="@+id/viewBackground" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background01" /> 

<View 
    android:id="@+id/viewFingerprint" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/fingerprint01" 
    android:visibility="gone" /> 

<Button 
    android:id="@+id/buttonScanning" 
    android:layout_width="162dp" 
    android:layout_height="130dp" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="41dp" 
    android:background="@android:color/transparent" /> 

<ImageView 
    android:id="@+id/imageViewScanner" 
    android:layout_width="162dp" 
    android:layout_height="130dp" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="41dp" 
    android:src="@drawable/line01" 

    android:visibility="gone" /> 

<TextView 
    android:id="@+id/textViewResult" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="180dp" 

    android:text="SCANNING" 
    android:textSize="30sp" 
    android:textColor="@android:color/white" 
    android:textStyle="bold" 
    android:gravity="center" 

    android:visibility="gone" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="55dp" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="112dp" 
    android:orientation="vertical"> 

    <DigitalClock 
     android:id="@+id/digitalClock" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="7" 

     android:textSize="30sp" 
     android:textColor="@android:color/white" 
     android:gravity="center" 
     android:textStyle="bold" /> 

    <TextView 
     android:id="@+id/textViewDate" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="10" 

     android:text="10 Grudzien 2015" 
     android:textSize="20sp" 
     android:textColor="@android:color/white" 
     android:gravity="center" 
     android:textStyle="bold" /> 

</LinearLayout> 

+0

Es geht um die Dichte der Pixel. Aber Sie sollten keine Probleme haben, da Sie XML für die Benutzeroberfläche verwenden und Sie geben die Breiten und Höhen in DP (Dichte Pixel). – Vlad

+0

Das Layout wird nur auf S4 auf andere Weise angezeigt. Auf anderen Geräten mit der gleichen Bildschirmauflösung ist alles gut. Wo ist das Problem hier? –

+0

Haben Sie dieses Problem gelöst? Ich habe das gleiche Problem: http://new.izigo.pt/content/images/IMG_3209.JPG – Patrick

Antwort

5

Die Telefone tun die gleiche Auflösung haben jedoch die Fensterhöhe unterschiedlich ist, weil LG G2 Navigationstasten auf dem Bildschirm hat.

+0

Hm, ist wahr. So wie kann ich Wie man separate Layouts erstellt? –

+1

Anstatt zu versuchen, die Ansichten absolut so zu positionieren, * es scheint * sie haben einen Hintergrund ihrer eigenen, machen einen Hintergrund für den gesamten Bildschirm und Hintergründe für jede Ansicht – Lamorak

+0

Vielleicht ist ein Weg zu tun zwei XML-Dateien für Gerät mit Navigationsleiste und ohne? –

0

Das Problem liegt nicht im Layout oder in der Dichte, sondern in den verschiedenen Höhen, die aufgrund des Vorhandenseins der Knopfleiste verfügbar sind. Als das Bild als background des View gesetzt wird erweitert, verzerren sich, schlage ich Sie es als src der ImageView zu setzen und die scaleType zu fitCenter, auf diese Weise das Bild auf den Bildschirm gesetzt passt seine Proportionen beibehalten:

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="fitCenter" 
    android:src="@drawable/background01" /> 
+0

Hallo danke! In meinem Fall ist es ein WebView mit einer loadUrl, also habe ich keinen Zugriff auf das Bild, es ist in der HTML. – Patrick

+0

Ok, ich habe den von Ihnen geposteten Code angesehen –