Android 按源更改颜色actionBar材质设计

Android 按源更改颜色actionBar材质设计,android,colors,android-actionbar,android-5.0-lollipop,material-design,Android,Colors,Android Actionbar,Android 5.0 Lollipop,Material Design,我想将ActionBar的颜色改为“materials design”,但setbackgrounddrawable方法将ActionBar的样式改为“holo”。有人知道“Android SDK L”是否有新的方法吗?谢谢。要更改材质主题中的操作栏颜色,只需在主题中指定android:colorPrimary即可 <style name="MyTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">

我想将ActionBar的颜色改为“materials design”,但setbackgrounddrawable方法将ActionBar的样式改为“holo”。有人知道“Android SDK L”是否有新的方法吗?谢谢。

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

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

...
@颜色/我的品牌颜色

从代码中只需调用
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);
    }

如果要在运行时更改颜色,则必须获取工具栏的对象,然后必须使用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");

是的,这是为了更改样式中的主颜色,但我喜欢动态更改源代码中的颜色,谢谢“setbackgrounddrawable方法将ActionBar的样式更改为“holo”是什么意思?你怎么称呼这个方法?