簡體   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