我需要知道动作栏的像素大小,以便应用正确的背景图像。


当前回答

如果你正在使用最近的v7 appcompat支持包中的兼容ActionBar,你可以使用

@dimen/abc_action_bar_default_height

文档

其他回答

@AZ13的回答很好,但根据Android设计指南,动作栏至少应该是48dp高。

Kotlin接受答案:

val Context.actionBarSize
    get() = theme.obtainStyledAttributes(intArrayOf(android.R.attr.actionBarSize))
        .let { attrs -> attrs.getDimension(0, 0F).toInt().also { attrs.recycle() } }

用法:

val size = actionBarSize                    // Inside Activity
val size = requireContext().actionBarSize   // Inside Fragment
val size = anyView.context.actionBarSize    // Inside RecyclerView ViewHolder

课程摘要通常是一个很好的开始。我认为getHeight()方法就足够了。

编辑:

如果你需要宽度,它应该是屏幕的宽度(对吧?),可以像这样收集。

如果你正在使用最近的v7 appcompat支持包中的兼容ActionBar,你可以使用

@dimen/abc_action_bar_default_height

文档

蜂窝样本之一是指?android:attr/actionBarSize