2015-12-12 10 views
5

Hey Ho una visione riciclatore e ogni elemento della vista riciclatore Contenere ImageView Che in FrameLayout e l'immagine ingrandita per coprire tutta la voce Formato
Quello che voglio fare per creare effetto di parallasse l'articolo Recycler Visualizza sullaCome creare un effetto parallasse su Recycler View Item on Scroll?

quello che posso per spostare l'immagine per mostrare parte nascosta di esso quando ho scorrere verso l'alto e verso il basso

Ti piace questa Tutorial in rapida

quello che ho fatto qui in Recycler vista di scorrimento

events_list.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
      super.onScrollStateChanged(recyclerView, newState); 
     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      final DynamicImageView imageView = (DynamicImageView) recyclerView.findViewById(R.id.item_image); 
      if (imageView.getVisibility() == View.VISIBLE) { 
       if (dy > 0) { 
        Animation a = new Animation() { 

         @Override 
         protected void applyTransformation(float interpolatedTime, Transformation t) { 
          FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) imageView.getLayoutParams(); 
          params.topMargin = (int)(-50 * interpolatedTime); 
          imageView.setLayoutParams(params); 
         } 
        }; 
        a.setDuration(100); // in ms 
        imageView.startAnimation(a); 

       } else if (dy < 0) { 
        Animation a = new Animation() { 

         @Override 
         protected void applyTransformation(float interpolatedTime, Transformation t) { 
          FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) imageView.getLayoutParams(); 
          params.topMargin = (int)(50 * interpolatedTime); 
          imageView.setLayoutParams(params); 
         } 
        }; 
        a.setDuration(100); // in ms 
        imageView.startAnimation(a); 
       } 
      } 


     } 
    }); 

so che questo codice non è la soluzione ottimale deve anche controllare tutti gli elementi visibili non il primo ma il mio problema qui che ii cambiare il margine della vista dell'immagine mi sto prendendo uno spazio libero tra gli oggetti e l'animazione non funziona perfettamente
qualche aiuto?

+0

probabilmente si vorrà solo fare il proprio layout/Vista e non funziona con l'ascoltatore di scorrimento. Sovrascrivi il metodo 'onLayout' e sei pronto. puoi quindi, a seconda della posizione delle viste, disegnare l'immagine in prima persona, parallandola allo stesso tempo –

+0

Grazie @ bleeding182 hai ragione la libreria che ho trovato funziona in questo modo grazie ancora – Tony

risposta

1

ho trovato questo Library a ottenere ciò che voglio esattamente

come ha usato

<com.fmsirvent.ParallaxEverywhere.PEWImageView 
     android:id="@+id/grid_image" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     pew:block_parallax_x="true" 
     pew:reverse="reverseY" 

     android:scaleType="centerCrop" 
     />