2015-05-01 111 views
-1

與我的活動溢出點保持白色,因此使用下面的代碼時不會更改顏色。有誰知道如何解決這個問題?溢出點不改變顏色

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_wc_bank); 

    ActionBar actionBar = getSupportActionBar(); 

    getSupportActionBar().setElevation(0); 

    //change background colour of action bar 
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#66CCCC"))); 
    //change text colour of action bar 
    actionBar.setTitle(Html.fromHtml("<font color='#000099'>Hello World</font>")); 

    //change colour of action bar back arrow 
    final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha); 
    upArrow.setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.SRC_ATOP); 
    getSupportActionBar().setHomeAsUpIndicator(upArrow); 

    //enable and show action bar back arrow 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setDisplayShowHomeEnabled(false); 

    final Drawable overflowDots = getResources().getDrawable(R.drawable.abc_ic_menu_moreoverflow_mtrl_alpha); 
    overflowDots.setColorFilter(getResources().getColor(R.color.piccadilly), PorterDuff.Mode.SRC_ATOP); 
} 
+0

你究竟在哪裏使用這個Drawable? –

+0

在.java文件中 – MacaronLover

+0

你能告訴我們你是如何使用它的嗎?現在我看到你得到了一個Drawable的實例並設置了一個濾鏡,但是我沒有看到你使用這個drawable的位置,比如用'ImageView'或者'MenuItem'。 –

回答

1

問題是你沒有對你有色的Drawable做任何事情。你得到一個你的abc_ic_menu_moreoverflow_mtrl_alpha圖標的實例,並且你在上面設置了一個ColorFilter,但是你實際上並沒有在任何地方使用該Drawable。

不幸的是,也沒有好的方法來設置一個Drawable對象作爲你的溢出菜單圖標。如果你堅持在你的Java代碼中這樣做,你可以使用use this answer來完成這個任務,但這很不方便。

首選的方法是使用自定義樣式和android:actionOverflowButtonStyle主題屬性來引用可繪製的資源。這意味着如果您使用此選項,則需要使用正確的顏色創建新資產並將其包含在可繪製資源文件夾中。你的主題最終會看起來像這樣:

<style name="Your.Theme" parent="@android:style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionOverflowButtonStyle">@style/Your.Theme.OverflowStyle</item> 
</style> 

<style name="Your.Theme.OverflowStyle" parent="@android:style/Widget.AppCompat.ActionButton.Overflow"> 
    <item name="android:src">@drawable/your_overflow_icon</item> 
</style> 
+0

以上確定很酷,但我怎樣才能將它應用於一項活動? – MacaronLover

+0

您可以創建僅供該活動使用的主題。您可以將'android:theme'應用於清單中特定的''元素。 –

+0

請記住,我正在爲我的應用程序使用AppCompat主題。任何我需要做的具體事情? – MacaronLover