相同分辨率屏幕下不同设备上的布局显示不同
Layout displayed differently on different devices at the same resolution screen
问题:布局在相同分辨率屏幕的不同设备上显示不同。我在 Samsung Galaxy S4 (1080x1920) 和 LG G2 (1080x1920) 上进行了测试。同样的分辨率,为什么布局在每个设备上显示不同?
我所有的都在布局文件夹中,没有其他分辨率的布局。
屏幕如下:
- 三星 Galaxy S4
http://www.image-share.com/ijpg-2963-272.html
- LG G2
http://www.image-share.com/ijpg-2963-271.html
编辑 #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>
手机确实具有相同的分辨率,但是 window 高度不同,因为 LG G2 的屏幕上有导航键。
问题不在于布局或密度,而在于可用的不同高度,这是由于按钮栏的存在。
由于设置为View
的background
的图片会膨胀变形,建议您设置为ImageView
的src
并设置scaleType
到 fitCenter
,这样图像将适合屏幕并保持其比例:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:src="@drawable/background01" />
问题:布局在相同分辨率屏幕的不同设备上显示不同。我在 Samsung Galaxy S4 (1080x1920) 和 LG G2 (1080x1920) 上进行了测试。同样的分辨率,为什么布局在每个设备上显示不同?
我所有的都在布局文件夹中,没有其他分辨率的布局。
屏幕如下:
- 三星 Galaxy S4
http://www.image-share.com/ijpg-2963-272.html
- LG G2
http://www.image-share.com/ijpg-2963-271.html
编辑 #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>
手机确实具有相同的分辨率,但是 window 高度不同,因为 LG G2 的屏幕上有导航键。
问题不在于布局或密度,而在于可用的不同高度,这是由于按钮栏的存在。
由于设置为View
的background
的图片会膨胀变形,建议您设置为ImageView
的src
并设置scaleType
到 fitCenter
,这样图像将适合屏幕并保持其比例:
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:src="@drawable/background01" />