@DBragion's answer was great. The problem with it (like many mentioned in the comments) was it didn't provide a way to specify the height / width of the progress indicator. Following is the modified version of his answer with combination of @AkankshaRathod's answer.
loading_indicator.png

progress_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center">
<animated-rotate
android:drawable="@drawable/loading_indicator"
android:pivotX="50%"
android:pivotY="50%" />
</item>
</layer-list>
CardView (or any container Layout) containing your ImageView
<androidx.cardview.widget.CardView
android:id="@+id/vCategoryItem"
android:layout_width="wrap_content"
android:layout_height="@dimen/height_category_image"
android:layout_marginLeft="@dimen/smaller"
app:cardCornerRadius="@dimen/small">
<ImageView
android:id="@+id/imgCategoryImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/demo" />
<ImageView
android:id="@+id/loadingIndicator"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_centerInParent="true"
android:src="@drawable/progress_animation" />
<TextView
android:id="@+id/lblCategoryName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:layout_marginBottom="@dimen/big"
android:ellipsize="marquee"
android:gravity="center"
android:paddingLeft="@dimen/big"
android:paddingRight="@dimen/big"
android:singleLine="true"
android:text="Category Name"
android:textColor="@android:color/white"
android:textSize="15sp"
android:textStyle="bold" />
</androidx.cardview.widget.CardView>
Picasso loading:
Picasso.get().load(yourImageURL).into(imgCategoryImage, new Callback() {
@Override
public void onSuccess() {
loadingIndicator.setVisibility(View.GONE);
}
@Override
public void onError(Exception e) {
}
});