アプリにツールバーを作成したいのですが、Androidのツールバーの標準の高さはどれくらいですか?
私は指に十分な大きさを望んでいますが、巨大ではありません。標準サイズはありますか?
タッチ可能な要素の推奨最小サイズは48 dpです。詳細なメトリックについては このページ を参照してください。
@ vedant1811の答えに加えて、attrsからプログラムでactionBarSize
を取得できます。
TypedValue tv = new TypedValue();
if (context.getTheme().resolveAttribute(Android.R.attr.actionBarSize, tv, true))
{
actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}
AppBarの高さをプログラムで取得するには、次のメソッドを使用できます
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;
}
phonesの場合は56dp
およびtabletsのような大きなデバイスの場合は、スペースがもっとありますが、64dp
Androidに既に存在するツールバーウィジェットを使用し、高さwrap_contentを設定できます。そのため、付属のデフォルトサイズを取得することをお勧めします。
ここに
<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>