Shimmer Effect to Image in Android

23 Feb, 2021
Shimmer Effect is one of the most popular features that we see in most Android apps. We can get to see this Shimmer Effect while loading the screen in animated form. Using Shimmer Effect in the Android app makes a good User Experience. In this article, we are going to see how to implement the Shimmer Effect in the Android app. A sample GIF is given below to get an idea about what we are going to do in this article. Note that we are going to implement this project using the Java language. 
Shimmer Effect is mostly used for loading the screen in an attractive form.
Shimmer Effect gives a good appearance to Images in the Android app.
Using Shimmer Effect in our app gives an Animated view of the image.
Step 1: Create a New Project
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio. Note that select Java as the programming language.
Step 2: Add dependency of Shimmer Effect library in build.gradle file
Then Navigate to gradle scripts and then to build.gradle(Module) level. Add below line in build.gradle file in the dependencies section.
implementation ‘com.facebook.shimmer:shimmer:0.5.0’
now click on Sync now it will sync your all files in build.gradle().
Step 3: Create a new Shimmer Effect in your activity_main.xml file
Navigate to the app > res > layout > activity_main.xml and add the below code to that file. Below is the code for the activity_main.xml file. 
XML
<?xml version="1.0" encoding="utf-8"?><RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/black"    android:paddingLeft="16dp"    android:paddingTop="16dp"    android:paddingRight="16dp"    android:paddingBottom="16dp"    tools:context=".MainActivity">      <!--Shimmer Effect-->    <com.facebook.shimmer.ShimmerFrameLayout        android:id="@+id/shimmer_view_container"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true">          <LinearLayout            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:gravity="center"            android:orientation="vertical">              <!--Image-->            <ImageView                android:layout_width="150dp"                android:layout_height="150dp"                android:src="@drawable/ic_baseline_account_balance_24" />              <!--Text given to Image-->            <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_marginTop="35dp"                android:text="Bank"                android:textColor="@color/purple_200"                android:textSize="24dp"                android:textStyle="bold" />                      </LinearLayout>      </com.facebook.shimmer.ShimmerFrameLayout>      <!--Button1 to start Shimmer Effect-->    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentStart="true"        android:layout_alignParentLeft="true"        android:layout_alignParentBottom="true"        android:paddingLeft="20dp"        android:text="Start" />      <!--Button2 to stop Shimmer Effect-->    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentEnd="true"        android:layout_alignParentRight="true"        android:layout_alignParentBottom="true"        android:paddingRight="20dp"        android:text="Stop" />      </RelativeLayout>
Step 4: Working with the MainActivity.java file
Go to the MainActivity.java file and refer to the following code. Below is the code for the MainActivity.java file. Comments are added inside the code to understand the code in more detail.
Java
import android.os.Bundle;import android.view.View;import android.widget.Button;  import androidx.appcompat.app.AppCompatActivity;  import com.facebook.shimmer.ShimmerFrameLayout;  public class MainActivity extends AppCompatActivity {      // Variables created for buttons and Shimmer    Button button1, button2;    ShimmerFrameLayout container;      @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);          button1 = findViewById(R.id.button);        button2 = findViewById(R.id.button2);          // Button 1 to start Shimmer Effect        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // If auto-start is set to false                container.startShimmer();             }        });          // Button 2 to stop Shimmer Effect        button2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // If auto-start is set to false                container.stopShimmer();             }        });          // Shimmer effect        container = (ShimmerFrameLayout) findViewById(R.id.shimmer_view_container);    }}
Now click on the run option it will take some time to build Gradle. After that, you will get output on your device as given below.
Android-Animation
Technical Scripter 2020
Android
Java
Technical Scripter
Java
Android
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Add Views Dynamically and Store Data in Arraylist in Android?
Android SDK and it's Components
How to Communicate Between Fragments in Android?
Flutter - Custom Bottom Navigation Bar
Retrofit with Kotlin Coroutine in Android
Arrays in Java
Split() String method in Java with examples
Arrays.sort() in Java with examples
Reverse a string in Java
Object Oriented Programming (OOPs) Concept in Java