滑动时平滑的颜色变化

3

我正在使用SlidingUpPanelLayout,当SlidingUpPanelLayout上滑时(浮动的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
1个回答

1

您的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.

    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接