繁体   English   中英

如何更改Android ActionBar图片

[英]How can i change android actionbar picture

我是android上的新手,我正在使用android studio进行开发。 我想将actionbar右上角的按钮图像更改为另一图像,但是在编译到我的android设备后,该按钮仍保留为...,但是我的自定义图像。 请帮忙!! 下面是我的代码。 我的公开课是扩展活动。

menu.xml

    android:id="@+id/action_share"
    android:orderInCategory="100"
    android:title="Share"
    android:icon="@drawable/ic_search_black"
    app:showAsAction="ifRoom"

Vic3ai,该图标一直位于右侧,是Action Overflow ,它始终会显示一个下拉菜单,这些下拉菜单不适用于操作栏(因为没有空间或因为我们决定在其中放一些)故意溢出)。

这可以使您更好地了解溢出的含义和用途,以及操作栏的概述-http: //developer.android.com/design/patterns/actionbar.html

听起来您实际上想要在操作栏上添加一个操作按钮 您可以这样做:

首先,在menu.xml中添加一个新项目,您希望其出现在该项目中:

<item
    android:id="@+id/camera_button"
    android:title="@string/camera"
    android:icon="@drawable/camera_icon"
    android:orderInCategory="100"
    android:showAsAction="always" 
     />

这里重要的是android:showAsAction =“ always”。 这就是使其在操作栏上显示为操作按钮的原因。 您还可以使用值“ ifRoom”,其值与锡盒上的含义相同:如果操作栏上有空间,则按钮将显示,否则将进入操作溢出。

现在我们已经有了actionbutton,我们进入actvity.java并响应该按钮:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.camera_button:
            //your code here, eg:
            openCamera(); 
            return true;
     // if you have other buttons, more cases would go here

    }

    return super.onOptionsItemSelected(item);
}

到目前为止,这应该在动作栏上为您提供一个“动作”按钮,该按钮可以运行您在activity.java中定义的任何内容,但动作溢出仍将存在。 删除它的最简单方法是返回menu.xml并删除/更改将在溢出中出现的所有项目。

android:showAsAction="never"

会自动将动作置于溢出状态

如果您有很多操作按钮,而其中任何一个都有android:showAsAction =“ ifRoom” ,则可能会在最右边再次找到一个溢出按钮

注意,如果您使用的是appCompat兼容性,请使用app:showAsAction =“ always”而不是android名称空间。

希望这可以帮助!

要更改“动作溢出”图标-默认为三个垂直点-您必须在主主题声明中添加一个actionOverflowButtonStyle项然后在styles.xml中对其进行定义:

<resources>
    <!-- base application theme -->
    <style 
        name="AppTheme" parent="@android:style/Theme.Holo">
        <!-- include overflow style in theme -->
       <item name="android:actionOverflowButtonStyle">@style/OverFlowIcon</item>
    </style>

    <!-- styles -->
    <style 
        name="OverFlowIcon"     
        parent="@android:style/Widget.Holo.ActionButton.Overflow">
        <item name="android:src">@drawable/ic_search_black</item>
    </style>
</resources>

当然,如果您使用的是AppCompat主题,请不要忘记使用没有 android名称空间的属性,否则它将无法正常工作-即

<item name="actionOverflowButtonStyle">@style/OverFlow</item>

而不是上面看到的。

另外,如果您更改了自定义主题,也不要忘记将主题包含在AndroidManifest.xml的应用程序标记中:

<application
    android:name="com.example.android.MainApp"
    android:theme="@style/AppTheme">
</application>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM