我在 android studio 上创建了一个应用程序,手机上的 ui 与模拟器上的 ui 不同。我检查了许多与我的手机相似的不同模拟器,它们的用户界面看起来不错。两个示例如下: 模拟器尺寸为6.4(1800x2400) 420dpi Pixel 3a XL API 34
我的手机尺寸是 6.7(1800x2400) 345dpi Redmi Note 9 Pro
我想知道我是否做错了什么,导致模拟器和真实设备之间产生不相等的结果。
我真的需要帮助,谢谢。 和代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/tvInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40sp"
android:text="@string/No_information"
android:paddingHorizontal="100sp"
android:textSize="15sp"
android:layout_marginTop="100sp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25sp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/Num1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_mark"
android:textSize="55sp"
android:layout_marginTop="10sp"/>
<ImageView
android:id="@+id/Compare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icons8_question_mark_100"
android:contentDescription="@string/question_mark"
android:layout_marginLeft="25sp"
android:layout_marginRight="25sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Num2"
android:text="@string/question_mark"
android:textSize="55sp"
android:layout_marginTop="10sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="25sp">
<ImageView
android:id="@+id/less_than_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icons8_less_than_100"
android:contentDescription="@string/less_than_pic"
android:onClick="userChoose"/>
<ImageView
android:id="@+id/equal_to_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icons8_equal_sign_100"
android:contentDescription="@string/equal_to"
android:layout_marginRight="30sp"
android:layout_marginLeft="30sp"
android:onClick="userChoose"/>
<ImageView
android:id="@+id/more_than_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icons8_more_than_100"
android:contentDescription="@string/more_than"
android:onClick="userChoose"/>
</LinearLayout>
<Button
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bNext"
android:text="@string/next_numbers"
android:backgroundTint="#87CEFA"
android:background="@drawable/rectangle"
android:layout_marginTop="10sp"
android:onClick="makeNumbers"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="30sp"
android:layout_marginTop="10sp">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rb1"
android:text="@string/_9_to_9"
android:onClick="makeRange"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rb2"
android:text="@string/_99_to_99"
android:onClick="makeRange"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rb3"
android:text="@string/_999_to_999"
android:onClick="makeRange"/>
</RadioGroup>
<View
android:layout_width="100sp"
android:layout_height="match_parent"></View>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bold"
android:id="@+id/checkBold"
android:onClick="toggleBold"
android:layout_marginTop="10sp"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/color"
android:id="@+id/checkColor"
android:onClick="toggleColors"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20sp"
android:paddingTop="10sp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timeswon"
android:text="You Were Right 0 Times"
android:textSize="15sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timeslost"
android:text="You Were Wrong 0 Times"
android:layout_marginStart="35sp"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>
您的手机似乎设置为使用从右到左书写的文本的区域设置(如阿拉伯语)
这是另一个有很好答案的问题 如何在 Android 布局上覆盖 RTL 支持
基本上,您可以在任何您想要强制方向布局文本/子视图的视图上设置
android:layoutDirection="ltr"
,或者您可以在清单中禁用应用程序标记上的RTL支持
非常感谢,成功了