Android Studio不同的屏幕尺寸

5tmbdcev  于 2023-10-23  发布在  Android
关注(0)|答案(4)|浏览(187)

你好,我在Android Studio中制作我的第一个应用程序,我有一些问题。我读了每一个stackoverflow的主题和android文档关于我的问题,但我仍然不明白我应该做什么。
我使用一个应用程序的约束布局和使用“SDP”“SSP”库不同的屏幕尺寸。在每个设备上的Android Studio预览中(也是我的自定义设备)我的应用程序看起来不错screenshoot但是当我在手机上测试应用程序时(与Android Studio“LG”中的设备相同的手机)应用程序与预览中的screenshoot不一样就像你可以看到一些元素消失了一样
我应该做些什么来使手机上的应用程序看起来与预览版相同,并适应不同的设备和屏幕尺寸?'
这是我的XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff11111a"
    android:theme="@style/Theme.PlayRPGMobile"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="@dimen/_230sdp"
        android:layout_height="@dimen/_300sdp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/login_logo"
        app:layout_constraintVertical_bias="0.299"
        app:srcCompat="@drawable/rectangle" />

    <ImageView
        android:id="@+id/login_logo"
        android:layout_width="@dimen/_300sdp"
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/_64sdp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.476"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/logo" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_28sdp"
        android:fontFamily="sans-serif-medium"
        android:text="Wprowadź swoje dane"
        android:textSize="@dimen/_15ssp"
        app:layout_constraintBottom_toTopOf="@+id/loginEdit"
        app:layout_constraintEnd_toEndOf="@+id/imageView"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintStart_toStartOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="@+id/imageView"
        app:layout_constraintVertical_bias="0.0"
        tools:text="Wprowadź swoje dane" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_24sdp"
        android:fontFamily="sans-serif-medium"
        android:text="Play RPG © 2022"
        android:textSize="@dimen/_15ssp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView"
        tools:text="Play RPG © 2022" />

    <EditText
        android:id="@+id/loginEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_80sdp"
        android:background="#ff222228"
        android:ems="10"
        android:hint="Login..."
        android:inputType="textPersonName"
        android:minHeight="@dimen/_38sdp"
        android:paddingLeft="@dimen/_10sdp"
        android:paddingTop="@dimen/_5sdp"
        android:paddingBottom="@dimen/_2sdp"
        app:layout_constraintEnd_toEndOf="@+id/imageView"
        app:layout_constraintHorizontal_bias="0.533"
        app:layout_constraintStart_toStartOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="@+id/imageView" />

    <EditText
        android:id="@+id/passEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_20sdp"
        android:background="#ff222228"
        android:ems="10"
        android:hint="Hasło..."
        android:inputType="textPassword"
        android:minHeight="@dimen/_38sdp"
        android:paddingLeft="@dimen/_10sdp"
        android:paddingTop="@dimen/_5sdp"
        android:paddingBottom="@dimen/_5sdp"
        app:layout_constraintEnd_toEndOf="@+id/loginEdit"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/loginEdit"
        app:layout_constraintTop_toBottomOf="@+id/loginEdit" />

    <Button
        android:id="@+id/loginBtn"
        android:layout_width="@dimen/_130sdp"
        android:layout_height="@dimen/_38sdp"
        android:backgroundTint="#ff222228"
        android:fontFamily="sans-serif-medium"
        android:text="Zaloguj"
        android:textColor="@color/white"
        app:layout_constraintBottom_toBottomOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="@+id/pinEdit"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="@+id/pinEdit"
        app:layout_constraintTop_toBottomOf="@+id/pinEdit"
        app:layout_constraintVertical_bias="0.512" />

    <EditText
        android:id="@+id/pinEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_20sdp"
        android:background="#ff222228"
        android:ems="10"
        android:hint="PIN..."
        android:inputType="number"
        android:minHeight="@dimen/_38sdp"
        android:paddingLeft="@dimen/_10sdp"
        android:paddingTop="@dimen/_5sdp"
        android:paddingBottom="@dimen/_5sdp"
        app:layout_constraintEnd_toEndOf="@+id/passEdit"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/passEdit"
        app:layout_constraintTop_toBottomOf="@+id/passEdit" />

</androidx.constraintlayout.widget.ConstraintLayout>
8wtpewkr

8wtpewkr1#

对于响应式UI,我建议在约束布局中使用指南。你可以参考这个约束布局训练指南。也可以在约束布局Chains中使用链

9njqaruj

9njqaruj2#

避免硬编码布局大小不同的屏幕尺寸
为了确保布局灵活并适应不同的屏幕尺寸,您应该使用wrap_contentmatch_parent来指定大多数视图组件的宽度和高度,而不是硬编码的尺寸。
wrap_content告诉视图将其大小设置为适合该视图中的内容所需的任何大小。
match_parent使视图在父视图中尽可能地扩展。
看看Android documentation会对你有帮助。

yc0p9oo0

yc0p9oo03#

使用指导方针和约束的意见,它。我遇到了同样的问题,指导方针对我帮助很大。

mnemlml8

mnemlml84#

我也遇到过类似的情况,但从来没有找到一个简单的解释。显然,更合理的选择是使用技术文档

相关问题