0

У меня есть панель инструментов и PagerSlidingTabStrips для моего макета, и я меняю возможности рисования одновременно, когда выбрана другая страница или когда прокручивается список, связанный со страницей. Вот код:Drawable не работает должным образом

Drawable DRAWABLE[] = new Drawable[8]; 
DRAWABLE[0] = getResources().getDrawable(R.drawable.actionbar_bg); 
DRAWABLE[1] = getResources().getDrawable(R.drawable.actionbar_bg_red); 
DRAWABLE[2] = getResources().getDrawable(R.drawable.actionbar_bg_blue); 
DRAWABLE[3] = getResources().getDrawable(R.drawable.actionbar_bg_orange); 
DRAWABLE[4] = getResources().getDrawable(R.drawable.actionbar_bg_grey); 
DRAWABLE[5] = getResources().getDrawable(R.drawable.actionbar_bg); 
DRAWABLE[6] = getResources().getDrawable(R.drawable.actionbar_bg_red); 
DRAWABLE[7] =getResources().getDrawable(R.drawable.actionbar_bg_blue); 

// OnPageSelected Метод:

@Override 
public void onPageSelected(int position) { 
    // TODO Auto-generated method stub 

    mHeaderLogo.setImageResource(IMAGES[position]); 

    mPagerStripView.setBackground(DRAWABLE[position]); 

    mActionBarView.setBackground(DRAWABLE[position]); 

} 

// OnScroll Метод:

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, 
     int visibleItemCount, int totalItemCount, int pagePosition) { 
    // TODO Auto-generated method stub 

    if (mViewPager.getCurrentItem() == pagePosition) { 

     int scrollY = getScrollY(view); 

     ViewHelper.setTranslationY(mHeader, 
       Math.max(-scrollY, mMinHeaderTranslation)); 
     float ratio = clamp(ViewHelper.getTranslationY(mHeader) 
       /mMinHeaderTranslation, 0.0f, 1.0f); 

     int alpha = (int) (ratio * 255); 

     Drawable currentDrawable = DRAWABLE[pagePosition]; 

     mCurrentDrawable.setAlpha(alpha); 
     mActionBarView.setBackground(mCurrentDrawable); 

     mPagerStripView.setBackground(mCurrentDrawable); 



    } 

} 

Но значение альфа не изменения, как ожидается для обеих сторон. Вы можете видеть из GIF, что я пытаюсь достичь

enter image description here

+0

значения AFAIK все ресурсы являются s хранится как 'int'. Измените 'Drawable DRAWABLE []' на 'int DRAWABLE []' – Apurva

+0

Я изменяю значения альфа для drawable, когда прокручивается список. – Pankaj

ответ

1

заменить этот

int DRAWABLE[] = new int[8]; 
     DRAWABLE[0] = R.drawable.ic_launcher; 
     DRAWABLE[1] = R.drawable.actionbar_bg_red; 
     DRAWABLE[2] = R.drawable.actionbar_bg_blue; 
     DRAWABLE[3] = R.drawable.actionbar_bg_orange; 
     DRAWABLE[4] = R.drawable.actionbar_bg_grey; 
     DRAWABLE[5] = R.drawable.actionbar_bg; 
     DRAWABLE[6] = R.drawable.actionbar_bg_red; 
     DRAWABLE[7] = R.drawable.actionbar_bg_blue; 

заменить этот

setBackgroundResource(DRAWABLE[position]); 

с

setbackground(DRAWABLE[position]); 
Смежные вопросы