2017-03-08 4 views
0

水平スクロールビューでスクロールするときに中央アイテムのサイズを大きくするにはどうすればよいですか? サーバーから画像を動的に取得し、ユーザーがスクロールしたときに中央のアイテムサイズが増加しましたUnable to design and implement this .上記を達成できません。 これを水平スクロールビューの代わりに他のビューで実装するヒント。horizantalScrollViewを使用してスクロール中の中央アイテムのサイズを変更します。

+0

はこれを参照してください。http://stackoverflow.com/a/19205940/6201929 – Athul

答えて

0

あなたはこの

layoutManager.setMaxVisibleItems(1); 

のようなあなたの画面サイズに基づいて表示されるアイテムを与えること

https://github.com/Azoft/CarouselLayoutManager

試して、このライブラリを使用することにより、これと同様のacheiveすることができます - と次を変更することができますデフォルトでは、com.azoft.carousellayoutmanager.CenterScrollListenerとしてリスナーを提供しています。これはあなたを助ける

layoutManager.setPostLayoutListener(new CarouselLayoutManager.PostLayoutListener() { 

     @Override 
     public ItemTransformation transformChild(@NonNull View child, float itemPositionToCenterDiff, int orientation) { 
      final float scale = (float) (1.5f * (1.5f * -StrictMath.atan(Math.abs(itemPositionToCenterDiff) + 1.0)/Math.PI + 1)); 
      final float translateY; 
      final float translateX; 
      if (CarouselLayoutManager.VERTICAL == orientation) { 
       final float translateYGeneral = child.getMeasuredHeight() * (1 - scale)/1f; 
       translateY = Math.signum(itemPositionToCenterDiff) * translateYGeneral; 
       translateX = 0; 
      } else { 
       final float translateXGeneral = child.getMeasuredWidth() * (0.8f - scale)/1.5f; 
       translateX = Math.signum(itemPositionToCenterDiff) * translateXGeneral; 
       translateY = 0; 
      } 

      return new ItemTransformation(scale, scale, translateX, translateY); 
     } 
    }); 

希望...

関連する問題