所需布局照片
测试时的当前布局照片
在不同的设备之间,布局发生了巨大的变化。我在google上四处寻找答案,但没有任何东西能清楚地说明什么是正确的做事方式,什么是不正确的做事方式。有什么办法?
注意:下面的代码中不包括最后一个图像视图的二十个相同副本。它们是用来移动图形的。
<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">
<com.example.castbuddyv1.FFVisuals
android:id="@+id/FFVisuals"
android:layout_width="389dp"
android:layout_height="781dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rawdata" />
<Button
android:id="@+id/right2"
android:layout_width="59dp"
android:layout_height="48dp"
android:layout_marginStart="84dp"
android:layout_marginLeft="84dp"
android:layout_marginTop="658dp"
android:layout_marginBottom="29dp"
app:icon="@drawable/abc_vector_test"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/onoff"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.39" />
<ToggleButton
android:id="@+id/onoff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginLeft="32dp"
android:layout_marginTop="700dp"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_marginBottom="32dp"
android:rotation="0"
android:textOff="Motors On"
android:textOn="Motors Off"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.922" />
<Button
android:id="@+id/right"
android:layout_width="59dp"
android:layout_height="48dp"
android:layout_marginTop="658dp"
android:layout_marginEnd="51dp"
android:layout_marginRight="51dp"
android:layout_marginBottom="29dp"
android:rotation="180"
app:icon="@drawable/abc_vector_test"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/onoff"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
<TextView
android:id="@+id/statusdisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="166dp"
android:layout_marginLeft="166dp"
android:layout_marginTop="595dp"
android:layout_marginEnd="183dp"
android:layout_marginRight="183dp"
android:layout_marginBottom="44dp"
android:text="Status:"
app:layout_constraintBottom_toTopOf="@+id/onoff"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/depth"
android:layout_width="80dp"
android:layout_height="31dp"
android:layout_marginEnd="49dp"
android:layout_marginRight="49dp"
android:text="Depth:"
app:layout_constraintBottom_toBottomOf="@+id/rawdata"
app:layout_constraintEnd_toStartOf="@+id/connect"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/connect"
app:layout_constraintVertical_bias="1.0" />
<Switch
android:id="@+id/rawdata"
android:layout_width="92dp"
android:layout_height="34dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginBottom="692dp"
android:text="Raw Data"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/connect"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<Button
android:id="@+id/connect"
android:layout_width="110dp"
android:layout_height="38dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:text="@string/connect"
app:layout_constraintBottom_toBottomOf="@+id/rawdata"
app:layout_constraintEnd_toStartOf="@+id/rawdata"
app:layout_constraintStart_toEndOf="@+id/depth"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
<ImageView
android:id="@+id/fish"
android:layout_width="57dp"
android:layout_height="33dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="320dp"
android:layout_marginRight="320dp"
android:layout_marginBottom="87dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/kisspng_computer_icons_symbol_clip_art_5b2bf54c62bee1_4646889015296075004045
</androidx.constraintlayout.widget.ConstraintLayout>
2条答案
按热度按时间kuhbmx9i1#
我不确定这部分是什么:
我是一个初学者,我不知道这是否对你有帮助,但是假设我想设计你的界面,我会这样做:
确保通过添加以下代码垂直显示界面
AndroidManifest.xml
文件:在constraintlayout中放置垂直和水平准则:
更换
(app:layout_constraintGuide_begin="20dp")
与(app:layout_constraintGuide_percent="x%")
根据百分比放置。例如:第一条垂直引导线为30%,第一条水平引导线为50%:
这就是我要做的,以确保每个小部件出现在我想要的位置。
以下是android studio中的外观:
设计+蓝图
这是它的外观:像素xl 1440× 2560:560dpi:像素xl
这就是它的样子:Nexus92048×1536:xhdpi24:nexus 9
您可以看到屏幕大小发生了变化,但是小部件保持在相同的位置
这是此接口的xml:
请注意,我将小部件的宽度和高度设置为0dp:
因为指导方针是按百分比设置的,所以小部件将根据屏幕的大小进行拉伸和收缩
您可以通过分配dp值来固定小部件的大小,例如:
这就是我所得到的,我希望我的解释是清楚和有用的。
bbuxkriu2#
你可以学习
ConstrainLayout
从这里开始我试着找出在代码中应用约束的问题。希望这对您有所帮助,请检查以下代码: