我的github:https://github.com/fcott19/XformerRecyclerView
最近有個小伙伴需要用到類似與畫欄的效果蒸矛,像下面這樣
于是突發(fā)奇想 抱虐,寫了這個XformerRecyclerView置媳,可以根據(jù)自己的需求自定義任何形式的轉(zhuǎn)場動畫馒稍,比如這樣
或這樣
想要自定義這些動畫很簡單,只需要如下
recyclerView.setPageTransformer(new PageTransformer() {
@Override
public void transformPage(View childView, float intervalPercent, float percent) {
}
});
在transformPage方法中對childView做修改即可罐孝。
參數(shù):
childView:recycleview中的item
percent:位置系數(shù)媳友,當childView在屏幕正中時,percent為0撒轮。當childView的中心在屏幕左邊界時聚唐,percent為-1。當childView的中心在屏幕右邊界時腔召,percent為1杆查。
intervalPercent:相鄰childView之間相差的percent
據(jù)此,我們看一下第一張圖片中臀蛛,PageTransformer的具體實現(xiàn)亲桦。
@Override
public void transformPage(View page,final float intervalPercent, float percent) {
float scaleFactor = (1 - scaleSize) * (1 - Math.abs(percent)) + scaleSize;
if (scaleFactor < scaleSize) {
scaleFactor = scaleSize;
}
page.setScaleX(scaleFactor);
page.setScaleY(scaleFactor);
page.setAlpha(minAlpha + (scaleFactor - scaleSize)
/ (1 - scaleSize) * (1 - minAlpha));
}
很簡單,根據(jù)percent計算childview的縮放系數(shù)浊仆,和透明系數(shù)客峭。然后設置進去就可以了