滑动时平滑的颜色变化



我正在使用SlidingUpPanelLayout,当SlidingUpPanelLayout向上滑动时(float slideOffset在0.0-1.0之间),我想用这个代码将布局颜色从白色更改为#4096c3

    SlidingUpPanelLayout.PanelSlideListener onslide = new SlidingUpPanelLayout.PanelSlideListener() {
    @Override
    public void onPanelSlide(View panel, float slideOffset) {
        backcolor = android.graphics.Color.argb(Math.round(255 * slideOffset), 64, 150, 195);
        panel_layout.setBackgroundColor(backcolor);
    }
    @Override
    public void onPanelStateChanged(View panel, SlidingUpPanelLayout.PanelState previousState, SlidingUpPanelLayout.PanelState newState) {
    }
};

这个代码有什么问题,因为当我滑动时,它突然从白色变为#4096c3

您的LinearLayout(Header)参考:-

LinearLayout mTitleLinearLayout= (LinearLayout) findViewById(R.id.llyout_header);

您的SlidingUpPanelLayout参考:-

SlidingUpPanelLayout mLayout = (SlidingUpPanelLayout) findViewById(R.id.sliding_layout);

你的听众:-

mLayout.addPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() {
        @Override
        public void onPanelSlide(View panel, float slideOffset) {
            Log.i(TAG, "onPanelSlide, offset " + slideOffset);
            //Here is the code which change titleBar color gradually
           mTitleLinearLayout.setBackgroundColor((int) new ArgbEvaluator().evaluate(slideOffset, Color.parseColor("#03A9F4"), Color.parseColor("#F44336")));

        }
        @Override
        public void onPanelStateChanged(View panel, PanelState previousState, PanelState newState) {

        }
        // During the transition of expand and collapse onPanelSlide function will be called.
    });

最新更新