98 votes

Android - Hauteur standard de la barre d'outils

Je veux créer une barre d'outils dans mon application, et je me demande quelle est la hauteur standard pour la barre d'outils dans Android ?

Je veux qu'il soit assez grand pour un doigt, mais pas énorme. Existe-t-il une taille standard ?

234voto

vedant1811 Points 658

Il est préférable d'utiliser ?attr/actionBarSize comme l'a fait remarquer @Jaison Brooks.

Dans le directives concernant les matériaux La taille suggérée est de 56dp :

Barre d'outils : 56dp

35voto

Márton Molnár Points 5258

La taille minimale recommandée pour les éléments touchables est de 48 dp, voir cette page pour des mesures plus détaillées.

8voto

repitch Points 1055

En plus de la réponse de @vedant1811, vous pouvez obtenir de manière programmatique actionBarSize à partir d'attrs :

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

3voto

guy.gc Points 113

Vous pouvez utiliser la méthode suivante pour obtenir la hauteur de l'AppBar de manière programmatique

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;
}

3voto

Rooh Al-mahaba Points 358

Vous pouvez utiliser le widget de la barre d'outils qui existe déjà dans Android et mettre la hauteur wrap_content , il sera donc préférable de prendre la taille par défaut qui vient avec.

ici

<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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X