如何更改Google Play商店的操作栏颜色

时间:2014-12-23 08:18:57

标签: android

我正在设置像google play store一样设置操作栏颜色。

以下代码尝试但完全像Play商店。

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
     R.drawable.testresult);
    bar = getSupportActionBar();

    Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
        @SuppressLint("NewApi")
        @Override
        public void onGenerated(Palette palette) {
            Palette.Swatch vibrant = palette.getVibrantSwatch();
            if (vibrant != null) {
                // If we have a vibrant color
                // update the title TextView
                bar.setBackgroundDrawable(new ColorDrawable(vibrant
                        .getRgb()));

                // titleView.setBackgroundColor(
                // vibrant.getRgb());
                // titleView.setTextColor(
                // vibrant.getTitleTextColor());
            }
        }
    });
} 

操作栏透明背景。 enter image description here

滚动 enter image description here

enter image description here

请帮帮我......

3 个答案:

答案 0 :(得分:4)

可以这样试试

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    mActionBarBackgroundDrawable = getResources().getDrawable(R.drawable.ab_background);
    mActionBarBackgroundDrawable.setAlpha(0);

    getActionBar().setBackgroundDrawable(mActionBarBackgroundDrawable);

    ((NotifyingScrollView) findViewById(R.id.scroll_view)).setOnScrollChangedListener(mOnScrollChangedListener);
}

private NotifyingScrollView.OnScrollChangedListener mOnScrollChangedListener = new NotifyingScrollView.OnScrollChangedListener() {
    public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
        final int headerHeight = findViewById(R.id.image_header).getHeight() - getActionBar().getHeight();
        final float ratio = (float) Math.min(Math.max(t, 0), headerHeight) / headerHeight;
        final int newAlpha = (int) (ratio * 255);
        mActionBarBackgroundDrawable.setAlpha(newAlpha);
    }
};

enter image description here

点击here

答案 1 :(得分:3)

操作栏可以通过调用操作栏上的setDisplayHomeAsUpEnabled(true)方法启用向上导航。通过调用此功能,操作栏上将显示后退箭头。

   //get action bar   
    ActionBar actionBar = getActionBar(); 
    // Enabling Up / Back navigation
    actionBar.setDisplayHomeAsUpEnabled(true);

要应用actionbar的背景颜色,请使用setBackgroundDrawable()方法并传递ColorDrawable Instance,如下所示:

actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FCFCFC")));

希望这会对你有所帮助

答案 2 :(得分:1)

你在找什么,我发现一个图书馆可以帮助你

  

https://github.com/ManuelPeinado/FadingActionBar

感谢ManuelPeinado,他是这个图书馆的作者:)