2016-05-17 5 views
3

Ich habe eine Aktivität 1 mit einer Recycler-Ansicht, die eine Liste von etwa 50 Bildern mit einer Größe von etwa 20-40 KB enthält, die mit der Picasso-Bibliothek abgerufen werden .
Jetzt habe ich Android-geteilten Übergang auf die Bilder implementiert, wenn der Benutzer auf ein Bild klickt.
Wenn der Benutzer auf ein Bild klickt, das bereits in Aktivität A geladen wurde, wird das Bild erneut in Aktivität B geladen, wodurch der gemeinsame Übergang nur in Platzhalterbild von Aktivität B erfolgt.
Während beim zweiten Mal das gleiche Bild angeklickt wird, funktioniert alles einwandfrei.
Ich kann nicht verstehen, warum das passiert. Da Picasso Caching verwendet, sollte das Bild jederzeit verfügbar sein, besonders wenn es auf dem Bildschirm angezeigt wird.Picasso lädt Bilder erneut in neue Aktivität, die in der App eine unzulässige Animation für gemeinsame Übergänge verursacht

Das Picasso Teil I haben in Aktivität A und B verwendet sind wie folgt:

Aktivität A des Recyclers Ansicht Adapter:

 @Override 
public void onBindViewHolder(final FeedsRecyclerAdapter.ViewHolder holder, final int position) { 

    holder.publisher_name.setText(feedsList.get(position).getPublisher_display_name()); 
    holder.feed_time_span.setText(feedsList.get(position).getFeedtime()); 
    Picasso.with(context) 
      .load(feedsList.get(position).getPublisher__pic()).tag("publisher_pic") 
      .into(holder.publisher_pic); 

    holder.feed_title.setText(Html.fromHtml(feedsList.get(position).getFeed_title())); 
    holder.feed_description.setText(Html.fromHtml(feedsList.get(position).getFeed_description())); 

    Picasso.with(context.getApplicationContext()) 
      .load(feedsList.get(position).getFeed_image_url()).fit() 
      .placeholder(R.drawable.loader2).tag("feed_pic") 
      .into(holder.feed_pic); 

    Picasso.with(context).setIndicatorsEnabled(true); 
    } 

Aktivität B onCreate:

 private void showData() { 
    SourceSemiBoldTextView title = (SourceSemiBoldTextView) findViewById(R.id.blog_title); 
    ImageView image = (ImageView) findViewById(R.id.blog_pic); 
    title.setText(articledata.get("articletitle")); 

    Picasso.with(getApplicationContext()).load(articledata.get("articleimageurl")).fetch(); 
    Picasso.with(getApplicationContext()).load(articledata.get("articleimageurl")) 
      .error(R.drawable.loader2) 
      .placeholder(R.drawable.loader2).fit().noFade() 
      .into(image); 

    Picasso.with(this).setIndicatorsEnabled(true); 
    } 

Jede mögliche Hilfe sehr geschätzt werden. Bitte lassen Sie mich wissen, wenn ich etwas anderes zum besseren Verständnis hinzufügen müssen

Antwort

3

Ich habe gerade herausgefunden, was ich falsch gemacht habe. Ich entfernte gerade die .fit() von beiden Aktivitäten und alles scheint jetzt gut zu funktionieren.