collapsingToolbarLayout
için özel bir contentScrim oluşturmak istiyorum. Benim çöktüğümToolbarLayout içinde bir imageview
vardır. o kayar zaman teoride imageview karartmak için varsayalım ve benim ince bez rengi solmaya varsayalımCollapsingToolbarLayout: özel contentScrim Facebook'a benzer
Hepimiz böyle bir scri yaratabilirsiniz biliyorum.
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
android:background="@color/white"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp"
android:fitsSystemWindows="true"
app:expandedTitleTextAppearance="@color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
Ancak android varsayılan ince bez Sadece ekranın 3/4 ilerlediğinde çalışmaya başlamış gibi görünüyor. Bu noktadan önce, görüntü görüntüsü hala tam olarak gösterilmektedir. Ekranın 3/4 ulaştığınızda Ayrıca, kanaviçe devreye giriyor ve otomatik olarak ince kumaş rengine collapsingtoolbarlayout rengini değiştirir:
Bunun yerine 3 kaydırırken tam ekranı dolduracak sahip
/4 yol yukarı ve biz toolbar
ulaşmadan önce, o kadar toolbar
kadar kaydırılan kadar yavaşça solmasını istiyorum.
Oluşturmak istediğim efektin bir örneğini görmek isterseniz, Facebook uygulamasına bakın. Bu collapsingToolbarLayout tamamen genişletilir Facebook uygulaması geçerli:
aşağı yaklaşık 3/4 yoldan ilerleyin collapsingToolbarLayout bir soluk mavi rengi vardır ve mavi tamamen doygunluğa değildir:
Yaniiçimde aşağıdaki oluşturmasını sağlamak benim collapsingToolbarLayout
:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/frame_picture">
<com.customshapes.SquareImageView
android:id="@+id/backdrop"
android:contentDescription="@string/photo"
android:transitionName="@string/transition"
android:layout_width="match_parent"
android:layout_height="240dp"
android:scaleType="centerCrop"
android:fitsSystemWindows="true"
/>
<com.customshapes.SquareImageView
android:id="@+id/fading_backdrop"
android:layout_width="match_parent"
android:background="?attr/colorPrimary"
android:layout_height="240dp"
android:alpha="0"
android:fitsSystemWindows="true"
/>
</FrameLayout>
Çerçeve geçişi, imageview
arka planının imageview
arka planında görüntülenmesini sağlayan ve 0 ile bir alfa ile 'scrimColor'? Attr/colorPrimary 'i barındıran bir görüntü görüntüsü olan,zemininden oluşur. parlamak. Biz yukarı görüneceği şekilde Biz fading_backdrop ait alfa ayarlarken
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
fading_backdrop.setImageAlpha(verticalOffset);
fading_backdrop.invalidate();
}
:
Sonra appBarLayout en onOffsetChangedListener uyguladı. Ben yapay bir şekilde bir ince yaratmaya çalışıyorum. Ancak, bu düzgün çalışmıyor gibi görünmüyor. Bu kodu çalıştırdığımda hiç solma yok. Yanlış yaptığımı bilen var mı?
Burada fading_backgrop nedir? –
Not: TabLayout veya saydam bir durum çubuğu kullanıyorsanız, bunları 'f' için hesaplamaya eklemeniz gerekebilir. –