Android
Menu Icons
Standard Icons
Refresh Icon
UI Design

Standard Android menu icons, for example refresh

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

Introduction

If you are looking for a built-in Android "standard refresh icon," the answer depends on which era of Android you mean. Older Android versions exposed many platform drawables under android.R.drawable, but modern Android development generally favors Material icons packaged with your app instead of depending on device-specific built-in menu icons.

So the practical modern answer is: do not rely on old platform menu icons for app actions such as refresh. Use a vector asset, usually from the Material icon set, and let AppCompat or Material Components tint and size it consistently.

Why Old Built-In Icons Are Not the Best Default

Historically, Android offered system drawables such as sync or refresh-style icons. The problem is that platform drawables are limited, inconsistent across versions, and not a good foundation for modern app branding or Material-based UI.

In current Android apps, the normal workflow is:

  • choose a Material icon such as refresh
  • add it as a vector asset in your project
  • reference it from your menu XML or toolbar code

That gives you consistent appearance regardless of device vendor or Android version.

Add a Refresh Icon as a Vector Asset

In Android Studio, the common path is New then Vector Asset, then choose the Material icon you want. Once the icon is in res/drawable, you can use it in a menu resource.

Example menu XML:

xml
1<menu xmlns:android="http://schemas.android.com/apk/res/android"
2      xmlns:app="http://schemas.android.com/apk/res-auto">
3
4    <item
5        android:id="@+id/action_refresh"
6        android:icon="@drawable/ic_refresh"
7        android:title="Refresh"
8        app:showAsAction="ifRoom" />
9</menu>

This is the modern replacement for hunting through platform icon constants.

Handle the Menu Action in Code

In an activity, you can inflate the menu and respond to the action:

kotlin
1override fun onCreateOptionsMenu(menu: Menu): Boolean {
2    menuInflater.inflate(R.menu.main_menu, menu)
3    return true
4}
5
6override fun onOptionsItemSelected(item: MenuItem): Boolean {
7    return when (item.itemId) {
8        R.id.action_refresh -> {
9            refreshData()
10            true
11        }
12        else -> super.onOptionsItemSelected(item)
13    }
14}
15
16private fun refreshData() {
17    // Reload data here.
18}

If you use a Toolbar or MaterialToolbar, the same icon resource works there as well.

What About android.R.drawable?

You can still reference some platform drawables, but it is usually not the best choice for primary app actions. Even if a drawable exists on one version, it may not match the rest of your app, and depending on platform assets makes UI behavior harder to control.

For example, code like this is technically possible in some cases:

kotlin
menu.findItem(R.id.action_refresh).setIcon(android.R.drawable.ic_popup_sync)

But that approach is legacy-oriented and not what most modern Android apps should do.

Follow Material Design Expectations

A refresh action is a common pattern, but the exact icon should still match the design system of the app. Material icons already solve the practical part of that problem. They scale cleanly, tint correctly, and work naturally with day and night themes.

If your app already uses Material Components, this path is far more predictable than mixing in old platform menu icons. It also keeps your visuals under version control in the project instead of depending on the OS image.

Common Pitfalls

  • Looking for a universal built-in Android refresh icon and assuming all devices expose the same drawable set.
  • Relying on android.R.drawable icons for core app actions in modern apps.
  • Using bitmap assets instead of vector drawables for simple toolbar icons.
  • Ignoring the app's design system and choosing icons only because they happen to exist on the platform.

Summary

  • Modern Android apps usually should not depend on old built-in platform menu icons.
  • For actions such as refresh, add a Material vector asset to your project.
  • Reference that asset from menu XML or toolbar code.
  • Platform drawables under android.R.drawable still exist in some cases, but they are not the best default.
  • Prefer project-owned vector icons for consistent appearance across Android versions and devices.

Related reading
Free course
Beginner
7 lessons
2 hours
Tackling System Design Interview Problems

A short course that equips you with the skills to approach system design interviews methodically.

Start the free course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

Interview Questions practice on Codemia

Over 8,000 real interview questions from top companies, searchable by company and role.

Browse interview questions

All Rights Reserved.