我正在学习android编程并为自己设置一个任务来掌握布局。我正在尝试创建一个虚拟的“魔术8球”。
我的目标是在白色圆圈中出现一些随机文本,通常会出现8。
如何对齐文本,以便在不同设备上文本始终与黑球出现在相同的相对位置,因此总是在白色圆圈内?
到目前为止,这是我的代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_gravity="center_vertical|center_horizontal"
tools:context="uk.co.simoncarr.magic8ball.MainActivity">
<TextView
android:id="@+id/txtTitle"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:layout_centerHorizontal="true"
android:text="@string/title"
android:textSize="36sp"
tools:layout_editor_absoluteX="107dp"
tools:layout_editor_absoluteY="10dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img8Ball"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:foregroundGravity="center_vertical|center_horizontal"
app:srcCompat="@drawable/magic8ball"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp" />
<TextView
android:id="@+id/txtMessage"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="111dp"
android:layout_marginRight="111dp"
android:layout_marginTop="296dp"
android:text="The Anser is Yes"
android:textAlignment="center"
android:textSize="18sp"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="447dp" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:1)
在回答这个问题之前,我应该评论一下这样一个事实,即ConstraintLayout中的元素不受任何限制,因此当你运行应用程序时,它们不会保留你在布局编辑器中给出它们的位置。你应该在做其他事情之前解决这个问题。
您可以看到的一种方法可能是拥有2个圆形绘图,一个带有黑色背景,另一个带有白色,并将一个放在另一个上面。这样你就可以使用相对较新的&#34;循环定位&#34;在this帖子中概述的ConstraintLayout中的功能。这将为您提供相对于黑色选择白色圆圈定位的灵活性和强大功能。