Вот трюк, вы можете создать его, используя xml макеты
Сначала создайте 4 векторных контура в рисованной папке
ic_top_left. xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="180dp"
android:height="180dp"
android:viewportWidth="250"
android:viewportHeight="250">
<group>
<clip-path
android:pathData="M0,0h250v250h-250z"/>
<path
android:pathData="M240,240L15,240a226.612,226.612 0,0 1,4.571 -45.346A223.763,223.763 0,0 1,53.426 114.2a225.659,225.659 0,0 1,98.993 -81.518,223.933 223.933,0 0,1 42.235,-13.11A226.68,226.68 0,0 1,240 15L240,240Z"
android:fillColor="#F8675D"/>
</group>
</vector>
ic_top_right. xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="180dp"
android:height="180dp"
android:viewportWidth="250"
android:viewportHeight="250">
<group>
<clip-path
android:pathData="M0,0h250v250h-250z"/>
<path
android:pathData="M10,15l-0,-0a226.76,226.76 135,0 1,45.344 4.572,223.929 223.929,0 0,1 42.235,13.11A225.077,225.077 0,0 1,135.8 53.427,226.632 226.632,135 0,1 169.1,80.9a226.592,226.592 135,0 1,27.474 33.3A224.976,224.976 135,0 1,217.318 152.421,223.788 223.788,45 0,1 230.428,194.655 226.613,226.613 0,0 1,235 240L10,240L10,15Z"
android:fillColor="#5699ff"/>
</group>
</vector>
ic_bott_left. xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="180dp"
android:height="180dp"
android:viewportWidth="250"
android:viewportHeight="250">
<group>
<clip-path
android:pathData="M0,0h250v250h-250z"/>
<path
android:pathData="M240,235h0a226.76,226.76 0,0 1,-45.344 -4.572,223.929 223.929,0 0,1 -42.235,-13.11A225.077,225.077 0,0 1,114.2 196.573,226.632 226.632,0 0,1 80.9,169.1a226.592,226.592 0,0 1,-27.474 -33.3A224.976,224.976 0,0 1,32.682 97.579,223.788 223.788,0 0,1 19.572,55.345 226.613,226.613 0,0 1,15 10L240,10L240,235Z"
android:fillColor="#8BC34A"/>
</group>
</vector>
ic_bott_right. xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="180dp"
android:height="180dp"
android:viewportWidth="250"
android:viewportHeight="250">
<group>
<clip-path
android:pathData="M0,0h250v250h-250z"/>
<path
android:pathData="M10,10L235,10a226.678,226.678 0,0 1,-4.571 45.346A223.763,223.763 0,0 1,196.574 135.8a225.654,225.654 0,0 1,-98.993 81.519,223.933 223.933,45 0,1 -42.235,13.11A226.676,226.676 0,0 1,10 235L10,10Z"
android:fillColor="#FFC107"/>
</group>
</vector>
затем в activity_main. xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="DashBoard"
android:layout_centerHorizontal="true"
android:textSize="25sp"
android:textStyle="bold"
android:textColor="@android:color/background_dark"/>
<RelativeLayout
android:layout_centerInParent="true"
android:layout_width="300dp"
android:layout_height="300dp">
<!--Top_Left_Btn-->
<LinearLayout
android:onClick="OnClickAndroid"
android:layout_width="150dp"
android:layout_height="150dp"
android:paddingStart="15dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/ic_top_left">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginTop="32dp"
android:layout_marginBottom="10dp"
android:src="@drawable/ic_android"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="18sp"
android:text="Android"
android:textStyle="bold"/>
</LinearLayout>
<!--Top_Right_Btn-->
<LinearLayout
android:onClick="OnClickRide"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentEnd="true"
android:paddingEnd="15dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/ic_top_right">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginTop="32dp"
android:layout_marginBottom="10dp"
android:src="@drawable/ic_ride"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@android:color/white"
android:text="Ride"
android:textStyle="bold"/>
</LinearLayout>
<!--Bottom_Left_Btn-->
<LinearLayout
android:onClick="OnClickBugs"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:paddingStart="15dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/ic_bott_left">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_bug"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_marginTop="10dp"
android:layout_marginBottom="32dp"
android:textSize="18sp"
android:text="Bugs"
android:textStyle="bold"/>
</LinearLayout>
<!--Bottm_Right_Btn-->
<LinearLayout
android:onClick="OnClickFitness"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:paddingEnd="15dp"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/ic_bott_right">
<ImageView
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_fitness"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_marginTop="10dp"
android:layout_marginBottom="32dp"
android:textSize="18sp"
android:text="Fitness"
android:textStyle="bold"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
а затем создайте метод onClick для кнопок в
MainActivity. java
package com.softwindevs.circularpiebuttons;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void OnClickAndroid(View view) {
Toast.makeText(this, "Android Button Clicked", Toast.LENGTH_SHORT).show();
}
public void OnClickRide(View view) {
Toast.makeText(this, "Ride Button Clicked", Toast.LENGTH_SHORT).show();
}
public void OnClickBugs(View view) {
Toast.makeText(this, "Bugs Button Clicked", Toast.LENGTH_SHORT).show();
}
public void OnClickFitness(View view) {
Toast.makeText(this, "Fitness Button Clicked", Toast.LENGTH_SHORT).show();
}
}
и все, вот как вы можете творить эту магию
Демонстрация:
Для всех активов и полного кода проекта Ознакомьтесь с репозиторием Github: Нажмите здесь
GoodLuck:)