Android 将actionbar图标高度设置为与actionbar高度匹配

Android 将actionbar图标高度设置为与actionbar高度匹配,android,android-actionbar,Android,Android Actionbar,请参见此处的问题,灰色复选框从操作栏的顶部和底部留出空间: styles.xml <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="CustomActionBarTheme" parent="Theme.Base.AppCompat.Light"> <item name="android:windowContentOverlay">@

请参见此处的问题,灰色复选框从操作栏的顶部和底部留出空间:

styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="CustomActionBarTheme" parent="Theme.Base.AppCompat.Light">
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
</style>

<!--<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">-->
<style name="ActionButtonStyle" >
    <item name="android:height">@dimen/abc_action_bar_default_height</item>
    <item name="android:layout_height">@dimen/abc_action_bar_default_height</item>
</style>
提交\u操作如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_submit"
        android:icon="@drawable/check"
        app:showAsAction="always"  />
</menu>

最后,附上正在使用的@drawable/支票


你知道我怎样才能把支票填到操作栏上吗?

下面是我在安卓系统中如何使用图标来获得正确的大小。您有一个带有res/drawable-folders的现有项目。您必须将正确的图标放入正确的文件夹中


启动一个新项目向导,当您到达启动程序图标时,将其放入要在现有项目中使用的图标中。完成向导。向导将为您制作各种大小的图标。然后我手动将res/drawable xdpi res/drawable ldpi等图标复制到现有项目的相应文件夹中。删除不再需要的新项目。

您的图标没有填充
操作栏的原因在于图标如何测量图标

ActionMenuItemView

因此,图像的大小是如此的不同,系统总是会调整它的大小

你知道我怎样才能把支票填到行动栏上吗

您应该为
菜单项
使用一个动作布局,一个没有背景的复选标记图标,并根据需要更改动作布局父项的背景色。下面是一个例子:

布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/actionButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#e8e8e8"
    android:clickable="true"
    android:contentDescription="@string/cd" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@null"
        android:scaleType="centerInside"
        android:src="@drawable/ic_action_tick" />

</RelativeLayout>
你的主题

<style name="Your.ActionButton" parent="@android:style/Widget.Holo.Light.ActionButton">
    <item name="android:background">#e8e8e8</item>
</style>
<style name="Your.Theme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionButtonStyle">@style/Your.ActionButton</item>
</style>

@style/Your.action按钮
结果


因此,它们会正确显示在操作栏中吗?我输入了大量的复选框图片,所以图片应该过大,为什么不填充操作栏?操作系统至少有正确大小的图标可供选择。它是否填满了actionbar与实际的图标和它的空白有关。一个好的开始是从developer.android.com下载图标。它们的大小已经正确,解压文件时会显示在正确的文件夹中。在您的示例中,什么是ic_action_tick?我按照您的代码逐字(上面更改了我的样式)活动以省略号开始,而不是在actionbar中勾选。啊,快划吧。我应用了ic_action_tick图标,但actionbar没有显示任何内容(从左到右只显示一个白色条),但我知道菜单项在那里(点击它会像预期的那样显示一个祝酒词)@tipu嗯,我不知道该告诉你什么。你必须做一些不同的事情。你忘了提到你正在使用AppCompat吗?因为在这种情况下,您也需要使用support library属性。我使用的是AppCompat(没有意识到这一点很重要,很抱歉)。从另一个问题中,我意识到这是因为我使用了android:actionLayout而不是appp:actionLayout,但除此之外,你的建议是正确的
<style name="Your.ActionButton" parent="@android:style/Widget.Holo.Light.ActionButton">
    <item name="android:background">#e8e8e8</item>
</style>
<style name="Your.Theme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionButtonStyle">@style/Your.ActionButton</item>
</style>