按来源更改颜色actionBar材料设计

时间:2014-08-19 09:55:38

标签: android colors android-actionbar android-5.0-lollipop material-design

我想将ActionBar的颜色更改为样式"材料设计",但方法​​setbackgrounddrawable将ActionBar的样式更改为" holo"。有没有人知道是否有一种新方法适用于" Android SDK L"?感谢。

3 个答案:

答案 0 :(得分:1)

从代码中只需致电getActionBar().setBackgroundDrawable()

我测试了它,一切运作良好。尝试我的代码(更长但效果更好),我使用的是Appcompat,但它在所有API中都是一样的:

private void colorizeAB(){
        Random random = new Random();
        int color = Color.rgb(random.nextInt(256), random.nextInt(256), random.nextInt(256));
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color));
        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                colorizeAB();
            }
        }, 1000);
    }

答案 1 :(得分:1)

如果要在运行时更改颜色,则必须使用工具栏的对象,然后必须使用 toolbar.setTitleTextColor()方法,如下所示:

Toolbar toolbar = (Toolbar) findViewById(R.id.app_bar);
toolbar.setTitleTextColor(Color.parseColor("#FF557F"));
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Title");

答案 2 :(得分:0)

要更改材料主题中的操作栏颜色,您只需在主题中指定android:colorPrimary即可。

<style name="MyTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
    ...
    <item name="android:colorPrimary">@color/my_branding_color</item>
</style>