共享元素转换不适用于毕加索

时间:2018-02-24 16:59:41

标签: android android-recyclerview picasso

我正在尝试应用从recyclerView的元素到活动的共享元素转换。 使用毕加索从URL加载回收站视图imageView的图像。 但是当我点击一张图片时,(它应该显示我的图像的下一个活动)图像根本没有显示。
查看持有人:

@Override
    public void onBindViewHolder(final MyViewHolder holder, int position) {
        Movie movie = moviesList.get(position);
        ActivityCompat.postponeEnterTransition((Activity)holder.myImage.getContext());
        holder.title.setText(movie.getTitle());
        holder.genre.setText(movie.getGenre());
        holder.year.setText(movie.getYear());


        holder.myImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation((Activity)view.getContext(), holder.myImage, "imageAnimation");

                Intent i = new Intent(view.getContext(), details.class);
                view.getContext().startActivity(i, options.toBundle());



            }
        });



        //load image from the web
        Picasso.with(holder.myImage.getContext()).load(movie.getImageURL()).placeholder(R.drawable.album1).into(holder.myImage, new Callback() {
            @Override
            public void onSuccess() {
               ActivityCompat.startPostponedEnterTransition((Activity)holder.myImage.getContext());

            }

            @Override
            public void onError() {
                ActivityCompat.startPostponedEnterTransition((Activity)holder.myImage.getContext());
            }
        });


    }

OnCreate中:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        supportPostponeEnterTransition();


        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        mAdapter = new MoviesAdapter(movieList);
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setItemAnimator(new DefaultItemAnimator());
        recyclerView.setAdapter(mAdapter);
        .
        .

我想在下一个活动中显示从网址加载的图片。

Video:

编辑:动画之前使用过一个静态图像。添加毕加索后出现了这个问题。

1 个答案:

答案 0 :(得分:0)

  

图片未显示,因为必须有相同的图片或任何其他视图(在第二个活动中具有相同的转换名称),即" imageAnimation"

只需将视图添加到其他活动(更大的版本会更好)并给它相同的转换名称..它将起作用..