3D視差引導頁
作者:冰點 
  3D視差引導頁,ViewPager滑動時子控件平移,縮放,3D翻轉(zhuǎn)
 源碼簡介:3D視差引導頁,ViewPager滑動時子控件平移,縮放,3D翻轉(zhuǎn)
源碼效果:
源碼片段:
- /**
 - * 當我們的ViewPager滑動的時候,每一個頁面都會回調(diào)該方法
 - * position:當前第幾個頁面
 - * view:某個頁面對應(yīng)的視圖 --- 布局的視圖
 - */
 - @Override
 - public void transformPage(View view, float position) {
 - // 漸變效果,判斷區(qū)間(-1,1)
 - if (position<1 && position >-1) {
 - // 視差加速效果,讓里面的所有子空間都給一個加速偏移量
 - ViewGroup rl=(ViewGroup) view.findViewById(R.id.rl);
 - // for (int i = 0; i < rl.getChildCount(); i++) {
 - // View child=rl.getChildAt(i);
 - // float factoe=(float) (Math.random()*2);
 - // if (child.getTag() == null) {
 - // child.setTag(factoe);
 - // }else{
 - // factoe=(Float) child.getTag();
 - // }
 - // // 加速偏移量(在child原來的位置再加一個偏移值)
 - // child.setTranslationX(-position*200*factoe);
 - // child.setTranslationY(position*100*factoe);
 - // }
 - // 縮放效果
 - // 縮放的范圍:0-1
 - rl.setScaleX(Math.max(0.8f,1-Math.abs(position)));
 - rl.setScaleY(Math.max(0.8f,1-Math.abs(position)));
 - // 3D翻轉(zhuǎn)動畫 往外翻轉(zhuǎn)
 - // rl.setPivotX(position<0f?rl.getWidth():0f);
 - // rl.setPivotY(rl.getHeight()*0.5f);
 - // rl.setRotationY(position*90);
 - // 3D翻轉(zhuǎn)動畫 往內(nèi)翻轉(zhuǎn)
 - // rl.setPivotX(position<0f?rl.getWidth():0f);
 - // rl.setPivotY(rl.getHeight()*0.5f);
 - // rl.setRotationY(-position*90);
 - // 羊肉串效果
 - rl.setPivotX(rl.getHeight()*0.5f);
 - rl.setPivotY(rl.getHeight()*0.5f);
 - rl.setRotationY(-position*90);
 - }
 - }
 
責任編輯:倪明 
                    來源:
                    devstore
 















 
 
 



 
 
 
 