2016-06-18 3 views
4

внутри CollapsingToolbarLayout ImageView и мне нужно SetAlpha (флоат) При том, что прокрутки вверх и вниз:андроид SetAlpha на ImageView в CollapsingToolbarLayout не работает

это способ получить смещения и рассчитать поплавка по смещению:

AppBarLayout.OnOffsetChangedListener:

@Override 
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
     float offsetAlpha = (float) (verticalOffset/appBarLayout.getTotalScrollRange()); 
     imageView.setAlpha(offsetAlpha); 
    } 

XML макет:

<android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsingToolbarLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:minHeight="50dp" 
      android:fitsSystemWindows="true" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      app:contentScrim="@android:color/transparent"> 

     <ImageView 
        android:id="@+id/imageView" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax" /> 

</android.support.design.widget.CollapsingToolbarLayout> 

но комплектAlpha не работает. Зачем?

ответ

10

Ваш расчет либо дал 0.0, либо 1.0.
Я попытался вычислить смещение, получив долю от полной прокрутки.

Это начало и возможность для улучшения.

appbar.addOnOffsetChangedListener(new OnOffsetChangedListener() { 
    @Override 
    public void onOffsetChanged(final AppBarLayout appBarLayout, final int verticalOffset) { 
     float offsetAlpha = (appBarLayout.getY()/appbar.getTotalScrollRange()); 
     imageView.setAlpha(1 - (offsetAlpha * -1)); 
    } 
}) 
+0

Идея умножить его на минус один, сделала магию для меня .... Спасибо :) –

Смежные вопросы