【问题标题】:Change color actionBar Material design by source按源更改颜色 actionBar 材料设计
【发布时间】:2014-10-12 09:10:09
【问题描述】:

我想将 ActionBar 的颜色更改为“材质设计”样式,但是 setbackgrounddrawable 方法将 ActionBar 的样式更改为“holo”。有谁知道“Android SDK L”是否有新方法?谢谢。

【问题讨论】:

  • “setbackgrounddrawable 方法将ActionBar 的样式更改为“holo”是什么意思?你是怎么调用这个方法的?

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


【解决方案1】:

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

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

【讨论】:

  • 是的,这是为了改变样式中的原色,但我喜欢动态改变源中的颜色,谢谢
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2015-08-15
      • 2015-08-13
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多