如何在多个视图周围绘制矩形

时间:2020-01-13 09:49:44

标签: android

我想在我的应用中获得以下外观,以尝试将视图分组为更具逻辑性的布局。

enter image description here

我当时正在考虑为矩形创建一个Shape Drawable,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
   <solid android:color="@android:color/white"/>
   <corners android:radius="12px"/> 
   <stroke  android:width="2dip" android:color="#000000"/>  
</shape>

但是我不确定如何在视图中放置矩形。我见过的大多数示例都将可绘制对象作为背景放置在单个视图中,而不是上面的多个视图。

我是否需要创建某种“空白”视图,除了容纳矩形外别无其他目的?我该怎么办?

目前所有内容都在约束布局中定义。

3 个答案:

答案 0 :(得分:0)

围绕视图创建布局,并将其背景设置为您创建的可绘制对象。

答案 1 :(得分:0)

您必须将其作为背景添加到所有这些视图所在的视图组中。 例如。将此可绘制对象作为背景添加到相对布局中。

答案 2 :(得分:0)

感谢所有评论。以为我会用我实现的方法来更新此方法,尽管其他答案是正确的,但我仍然不太了解要求什么,因此这里有一些附加信息:

在drawable文件夹中创建一个名为“ rectangle.xml”的文件,其内容如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@android:color/white"/>
    <corners android:radius="12px"/>
</shape>

然后在要放置矩形的布局文件中,添加了以下视图。我不了解的关键是如何指定矩形的大小/位置。这是通过定义以下约束将其包装在我想要的项目周围来实现的。

<View
        android:id="@+id/myRectangleView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="@id/unit_spinner"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toBottomOf="@id/time_label"
        android:background="@drawable/rectangle"
        android:elevation="2dp"
        />

我苦苦挣扎的其他观点:

  • 即使我在所有视图包围之前定义了该视图, 微调器上的箭头显示在矩形的后面。要解决此问题,我必须在视图上使用height属性,并将所有其他视图设置为更高。
  • 我很难找到 我想要的矩形,使用的边距/填充 矩形视图,因此必须在视图中添加填充 周围。不确定这是否是正确的方法-我仍然 玩弄它。