【问题标题】:Scale android element according to different screen size根据不同的屏幕尺寸缩放android元素
【发布时间】:2021-03-16 20:55:33
【问题描述】:

我在缩放“图像”、“文本字段”、“按钮”时遇到问题,基本上是我在布局中使用的所有元素。

如果您在下面看到,这是一个 5.5 英寸分辨率的显示器,我的应用程序看起来很完美,但是当我更改屏幕分辨率时,我的元素开始重叠。这就是它开始的样子......

元素开始相互重叠,有人可以帮我解决这个问题吗?我已经挣扎了 4 天了。

下面是布局 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"
    tools:context=".MainActivity"
    android:background="@drawable/appbackgroundall">

    <Switch
        android:id="@+id/smartlever"
        android:layout_width="116dp"
        android:layout_height="42dp"
        android:checked="false"
        android:hapticFeedbackEnabled="true"
        android:scaleX="2"
        android:scaleY="2"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.294"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.499"/>

    <TextView
        android:id="@+id/smartButtonText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/sansationregular"
        android:scaleX="2"
        android:scaleY="2"
        android:text="Tap to alter smart mode"
        android:textColor="@color/colorAccent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.433" />

    <ImageView
        android:id="@+id/allbackcologo"
        android:layout_width="66dp"
        android:layout_height="62dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.976"
        app:srcCompat="@drawable/companylogo" />

    <ImageView
        android:id="@+id/spaceman"
        android:layout_width="205dp"
        android:layout_height="253dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.868"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.15"
        app:srcCompat="@drawable/spaceman" />

    <ImageView
        android:id="@+id/pingedlogo"
        android:layout_width="139dp"
        android:layout_height="52dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.058"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.023"
        app:srcCompat="@drawable/pingedlogo" />

    <Button
        android:id="@+id/developerbutton"
        style="@style/Widget.MaterialComponents.Button.TextButton"
        android:hapticFeedbackEnabled="true"
        android:layout_width="64dp"
        android:layout_height="61dp"
        android:fontFamily="monospace"
        android:scaleX="2"
        android:scaleY="2"
        android:text=""
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.495"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.976" />

    <ImageView
        android:id="@+id/settingButton"
        android:layout_width="61dp"
        android:layout_height="59dp"
        android:rotation="175"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.923"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.023"
        app:srcCompat="@drawable/settingbutton" />

    <Button
        android:id="@+id/settingB"
        style="@style/Widget.MaterialComponents.Button.TextButton"
        android:layout_width="60dp"
        android:layout_height="59dp"
        android:fontFamily="monospace"
        android:scaleX="2"
        android:scaleY="2"
        app:layout_constraintBottom_toBottomOf="@+id/settingButton"
        app:layout_constraintEnd_toEndOf="@+id/settingButton"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/settingButton"
        app:layout_constraintTop_toTopOf="@+id/settingButton"
        app:layout_constraintVertical_bias="0.0" />

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.093"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.784"
        app:srcCompat="@drawable/alientwo" />

</androidx.constraintlayout.widget.ConstraintLayout>

【问题讨论】:

    标签: android xml android-layout android-fragments


    【解决方案1】:

    尽量使用minWidth和maxWidth,

    示例:

    <ImageView
            android:id="@+id/imageView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxHeight="50dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.093"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.784"
            app:srcCompat="@drawable/alientwo" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多