我一直在使用Android Studio和BlueStacks开发Android应用程序,但一切都很棒。但是,当我尝试在我的物理设备上运行应用程序时,所有内容的显示方式都截然不同。
Bluestacks模拟中的一切看起来都很棒(手机设置为纵向模式),但随后在物理手机上所有东西看起来都被挤压在一起(好像手机有TINY分辨率等)。
有没有人见过类似的东西?这只是我物理设备的问题吗?
Here is an image of what the login page looks like in Emulator
And here's the physical device Screenshot
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#ff292929"
tools:context="com.socialivemusic.socialivemusic.LoginActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="200dp"
app:srcCompat="@drawable/socialogo"
android:id="@+id/imageView"
android:layout_gravity="center"
android:layout_alignParentTop="true"
android:layout_marginBottom="50dp"
android:layout_centerHorizontal="true"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:layout_below="@+id/imageView"
android:layout_marginBottom="50dp"
android:ems="10"
android:id="@+id/loginEmail"
android:background="#ffffffff"
android:hint="Enter Email"
android:textColorHint="#ff434343"
android:textColor="#ff292929"
android:textSize="30sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:layout_below="@id/loginEmail"
android:ems="10"
android:id="@+id/loginPw"
android:background="#ffffffff"
android:hint="Enter Password"
android:textColorHint="#ff434343"
android:textColor="#ff292929"
android:layout_marginBottom="@dimen/activity_horizontal_margin"
android:textSize="30sp"/>
<Button
android:text="LOGIN"
android:textColor="#ffffffff"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:id="@+id/loginButton"
android:background="#08AE9E"
android:layout_below="@+id/loginPw"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:textSize="30sp"/>
<TextView
android:text="I fogot my Password"
android:textColor="#ffffffff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/loginButton"
android:layout_marginTop="@dimen/activity_horizontal_margin"
android:layout_centerHorizontal="true"
android:id="@+id/toPwRedo"
android:textSize="20sp"/>
<Button
android:text="REGISTER"
android:textColor="#ffffff"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:id="@+id/toRegister"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ff434343"
android:textSize="30sp"/>
</RelativeLayout>
答案 0 :(得分:0)
这是因为你的设备&amp;模拟器的大小不同。当您在dp中给出大小时,您应该将这些大小放在dimens.xml,dimens.xml(w600dp),dimens.xml(w720dp),dimens.xml(w820dp)&amp;的文件中。更多,以迎合不同密度的设备和分辨率。
例如:
dimens.xml- <dimen name="d2dp">2dp</dimen>
,
dimens.xml(w600dp) - <dimen name="d2dp">3dp</dimen>
,
dimens.xml(w720dp) - <dimen name="d2dp">4dp</dimen>
然后在您的布局中将其用作android:layout_height="@dimen/d2dp
&#34;
了解处理不同尺寸的屏幕。