所以我正在为我的第一个应用程序设计主页,当我模拟它时,我注意到我的秒表的尺寸由于某种原因变大了一点。所以我拿起手机在那里进行了测试,但结果并不理想。我使用的 dp 我几乎可以肯定是 % 而不是设置值,所以我不知道为什么它会那样变化。
这是图片,所以它不会混淆我的问题 http://imgur.com/a/IKvdI
menu1_layout.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal">
<ImageView
android:layout_width="500dp"
android:layout_height="800dp"
android:id="@+id/imageView"
android:background="@drawable/background3" />
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal">
<Button
android:id="@+id/stopWatch"
android:layout_width="225dp"
android:layout_height="200dp"
android:background="@drawable/stopwatch2"
android:layout_marginTop="83dp"
android:layout_marginRight="3dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal|bottom">
<Chronometer
android:id="@+id/aChronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:textColor="#ffffff"
android:layout_marginBottom="144dp"
android:layout_above="@+id/editText"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:text="@string/Explanation"
style="@style/Base.TextAppearance.AppCompat.Medium"
android:layout_above="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginBottom="26dp"
android:textColor="#ffffff" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:text="= 0"
android:layout_marginTop="8dp"
style="@style/Base.TextAppearance.AppCompat.Medium"
android:layout_alignTop="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginRight="-10dp"
android:textColor="#ffffff" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="50dp"
android:layout_height="40dp"
android:background="@drawable/cookie"
android:id="@+id/button"
android:layout_marginRight="-10dp"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/editText2"
android:layout_toStartOf="@+id/editText2"
android:layout_marginBottom="84dp" />
</RelativeLayout>
</FrameLayout>
最佳答案
如果您在 5 个不同尺寸的不同设备上运行您的特定布局,您将得到 5 个不同的结果。
嗯,这是因为您为 layout_height
、layout_width
和 margins
设置了特定值,例如 225dp
,200dp
。我知道这些是 独立像素
,但是当考虑可绘制时,永远不要将 width
和 height
都设置为特定值。它弄乱了纵横比。这些设置适用于一种特定的设备配置,但不适用于其他设备。设备将根据设备的分辨率选择不同的可绘制对象。
您需要尝试设计您相对于其他 View 的 View 。始终确保 layout_width
和 layout_hight
在 wrap_content
中。这将确保 drawable
在所有设备和模拟器中以正确的纵横比加载。
关于android - 相对布局在不同的模拟器中搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405038/