2016-03-30 3 views
2

Я использую SlidingUpPanelLayout и я хочу, чтобы изменить цвет макета от белого до #4096c3 с этим кодом, когда SlidingUpPanelLayout скользя (поплавок slideOffset между 0.0-1.0):Плавное изменение цвета при скольжении

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?

ответ

0

ваш 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. 

    }); 
Смежные вопросы