Как изменить цвет плавающей кнопки действия в Android?

Опубликовано: 10 Января, 2023

Приложения для Android используют плавающую кнопку действия, чтобы предложить пользователю выполнить какое-либо важное действие в приложении для Android. Плавающие кнопки действий в приложениях для Android используются для выполнения некоторых важных функций в приложениях для Android. Много раз в приложениях для Android мы хотим динамически менять цвет нашей плавающей кнопки действия. В этой статье мы рассмотрим, как изменить цвет кнопки плавающего действия в Android. Пример видео приведен ниже, чтобы получить представление о том, что мы собираемся делать в этой статье.

Note: This Android article covered in both Java and Kotlin languages. 

Пошаговая реализация

Шаг 1. Создайте новый проект в Android Studio.

Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать/запустить новый проект в Android Studio ».

Шаг 2: Работа с файлом activity_main.xml

Перейдите к app > res > layout > activity_main.xml и добавьте приведенный ниже код. В код добавлены комментарии для более подробного ознакомления.

XML




<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/idRLContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--on below line we are creating
        a text for our app-->
    <TextView
        android:id="@+id/idTVHeading"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/idFAB"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:padding="10dp"
        android:text="Changing color of Floating Action Button in Android"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="20sp"
        android:textStyle="bold" />
  
    <!--on below line we are creating a simple floating action button-->
    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/idFAB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginTop="20dp"
        android:src="@drawable/ic_android"
        app:backgroundTint="@color/purple_200"
        app:tint="@color/white" />
  
</RelativeLayout>

Шаг 3: Работа с файлом MainActivity

Перейдите к приложению > java > имени пакета вашего приложения > файлу MainActivity и добавьте в него приведенный ниже код. В код добавлены комментарии для более подробного ознакомления.

Kotlin




package com.gtappdevelopers.kotlingfgproject
  
import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.floatingactionbutton.FloatingActionButton
import kotlin.random.Random.Default.nextInt
  
class MainActivity : AppCompatActivity() {
  
    // on below line creating a variable.
    lateinit var fabAction: FloatingActionButton
      
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // on below line we are initializing our variables.
        fabAction = findViewById(R.id.idFAB)
  
        // on below line we are adding click listener 
        // for our simple button
        fabAction.setOnClickListener {
            // on below line we are generating a random color
            // for our floatingaction button.
            val color = Color.argb(255, nextInt(256), nextInt(256), nextInt(256))
  
            // on below line we are updating color for our floating 
           // action button using above color
            fabAction.backgroundTintList = ColorStateList.valueOf(
                color
            )
            // on below line we are displaying a toast message.
            Toast.makeText(this, "Color of FAB changed..", Toast.LENGTH_SHORT).show()
        }
  
    }
}

Java




package com.gtappdevelopers.kotlingfgproject;
  
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.Random;
  
public class MainActivity extends AppCompatActivity {
  
    // on below line we are creating variables.
    private FloatingActionButton fabAction;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // on below line we are initializing our variables.
        fabAction = findViewById(R.id.idFAB);
  
        // on below line we are adding click listener for our simple button
        fabAction.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // on below line we are generating a random color
                // for our floating action button.
                Random rnd = new Random();
                int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
                  
                // on below line we are updating color for our floating action button
                // using above color
                fabAction.setBackgroundTintList(ColorStateList.valueOf(color));
                  
                // on below line we are displaying a toast message.
                Toast.makeText(MainActivity.this, "Color of FAB changed..", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Теперь запустите приложение, чтобы увидеть результат работы приложения.

Выход: