[英]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.