如何在 XML 中使用圆形和矩形创建背景

How to create a background using a circle and a rectangle in XML

我想用XML创建这样的背景,如何组合它们

在Android工作室很难做这样的设计。

据我所知,创建它们的更简单方法是使用 Adob​​e XD。在这里,您可以创建所需的设计,然后导出为 SVG 格式,可以直接从 Android studio 导入。这将在您的项目中创建为 XML 文件。

您可以参考这个教程视频:https://www.youtube.com/watch?v=46emdTv8Js4

1- 创建 background_balck.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle" >
<solid android:color="#000"/>
</shape>

2- 创建文件 forground_shape.xml 并将此代码放在可绘制文件中。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item>
     <shape android:shape="rectangle" />
</item>
<item
    android:bottom="-70dp"
    android:left="-150dp"
    android:right="-100dp"
    android:top="100dp">
    <shape android:shape="oval">
        <solid android:color="#F40505" />
    </shape>
   </item>
 </layer-list>

2- 将此形状设置为任何这样的视图。

例子:

  <?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="@drawable/background_balck"
    tools:context=".MainActivity">


<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="423dp"
    android:layout_height="734dp"
    android:background="@drawable/forground_shape"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/guideline2">

         ///your  component

</androidx.constraintlayout.widget.ConstraintLayout>


    /// root view 

  <androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_begin="51dp" />

  </androidx.constraintlayout.widget.ConstraintLayout>

结果:

玩得开心:)

您可以将此代码用于后台。

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:bottom="0dp"
    android:left="0dp"
    android:right="0dp"
    android:top="0dp">
    <shape android:shape="rectangle">
        <solid android:color="@color/black"/>
    </shape>
</item>
<item
    android:bottom="-100dp"
    android:left="-220dp"
    android:right="-130dp"
    android:top="100dp">
    <shape android:shape="oval">
        <solid android:color="@color/colorRed"/>
    </shape>
</item>

This will show like this. result