Android - Standard height of toolbar

AndroidUser InterfaceToolbar

Android Problem Overview


I want to create a toolbar in my app, and I am wondering what is the standard height for the toolbar in android?

I want it to be big enough for a finger, but not huge. Is there standard size?

Android Solutions


Solution 1 - Android

Its best to use ?attr/actionBarSize as @Jaison Brooks commented.

In the material guidelines, suggested height is 56dp:

> Toolbar: 56dp

Solution 2 - Android

The recommended minimum size for touchable elements is 48 dp, see this page for more detailed metrics.

Solution 3 - Android

In addition to @vedant1811 answer, you can programmatically obtain actionBarSize from attrs:

TypedValue tv = new TypedValue();
if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}

Solution 4 - Android

You can use the following method to get the AppBar height programatically

private static final int DEFAULT_TOOLBAR_HEIGHT = 56;

private static int toolBarHeight = -1;

public static int getToolBarHeight(Context context) {
        if (toolBarHeight > 0) {
            return toolBarHeight;
        }
        final Resources resources = context.getResources();
        final int resourceId = resources.getIdentifier("action_bar_size", "dimen", "android");
        toolBarHeight = resourceId > 0 ?
                resources.getDimensionPixelSize(resourceId) :
                (int) convertDpToPixel(DEFAULT_TOOLBAR_HEIGHT);
        return toolBarHeight;
    }

public static float convertDpToPixel(Context context, float dp) {
    float scale = context.getResources().getDisplayMetrics().density;
    return dp * scale + 0.5f;
}

Solution 5 - Android

you can use the toolbar widget that already exist in android and put the height wrap_content , so it will better to get the default size that come with it.

here

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="@color/dark_cerulean">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingEnd="16dp"
        android:paddingStart="16dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_gravity="end"
        android:gravity="end"
        android:layout_marginEnd="16dp"
        android:textColor="@color/white"
        android:id="@+id/toolbar_title" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/image1"
            android:id="@+id/image"/>

    </LinearLayout>


</android.support.v7.widget.Toolbar>

Solution 6 - Android

For phones it is 56dp and for large devices like tablets which you have more spaces it could be 64dp

Solution 7 - Android

Here's my Kotlin solution

fun getActionBarHeight(activity: Activity): Int {
        val typedValue = TypedValue()
        if (activity.theme.resolveAttribute(
                android.R.attr.actionBarSize,
                typedValue,
                true
            )
        ) return TypedValue.complexToDimensionPixelSize(
            typedValue.data,
            activity.resources.displayMetrics
        )
        return 0
    }

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnrofisView Question on Stackoverflow
Solution 1 - AndroidVedant AgarwalaView Answer on Stackoverflow
Solution 2 - AndroidmolnarmView Answer on Stackoverflow
Solution 3 - AndroidrepitchView Answer on Stackoverflow
Solution 4 - Androidguy.gcView Answer on Stackoverflow
Solution 5 - AndroidRooh Al-mahabaView Answer on Stackoverflow
Solution 6 - AndroidMahdi-MalvView Answer on Stackoverflow
Solution 7 - AndroidShvedkov IvanView Answer on Stackoverflow