我想在ICS的android操作栏中设置自定义背景图片。我在显示它之前以编程方式重新缩放它,以便完全适合actionBar。问题是我需要提前知道actionBar的高度,但在实际显示之前调用actionBar.getHeight(),返回0。
如果我只是尝试将其作为actionBar的背景以xml样式包含,则无法通过保持纵横比来重新缩放它。 如果我在动作栏显示后尝试设置背景,我会得到一些奇怪的结果,图像浮在上面,切成两半。
似乎唯一的方法是以程序化方式调整大小。在我实际请求显示之前,有没有办法检测actionBar的大小?
谢谢
答案 0 :(得分:3)
为什么不使用draw9patch图像? ActionBar的默认大小是48dip
您可能想知道的其他值
<!-- Default height of an action bar. -->
<dimen name="action_bar_default_height">48dip</dimen>
<!-- Vertical padding around action bar icons. -->
<dimen name="action_bar_icon_vertical_padding">8dip</dimen>
<!-- Text size for action bar titles -->
<dimen name="action_bar_title_text_size">18dp</dimen>
<!-- Text size for action bar subtitles -->
<dimen name="action_bar_subtitle_text_size">14dp</dimen>
<!-- Top margin for action bar subtitles -->
<dimen name="action_bar_subtitle_top_margin">-3dp</dimen>
<!-- Bottom margin for action bar subtitles -->
<dimen name="action_bar_subtitle_bottom_margin">5dip</dimen>
答案 1 :(得分:3)
int height = 0;
TypedValue typeValue = new TypedValue();
getTheme().resolveAttribute(android.R.attr.actionBarSize, typeValue, true);
height = TypedValue.complexToDimensionPixelSize(typeValue.data,getResources().getDisplayMetrics());