如何在 XML 中使用圆形和矩形创建背景
How to create a background using a circle and a rectangle in XML
我想用XML创建这样的背景,如何组合它们
在Android工作室很难做这样的设计。
据我所知,创建它们的更简单方法是使用 Adobe 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
我想用XML创建这样的背景,如何组合它们
在Android工作室很难做这样的设计。
据我所知,创建它们的更简单方法是使用 Adobe 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