我正在尝试应用从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);
.
.
我想在下一个活动中显示从网址加载的图片。
编辑:动画之前使用过一个静态图像。添加毕加索后出现了这个问题。
答案 0 :(得分:0)
图片未显示,因为必须有相同的图片或任何其他视图(在第二个活动中具有相同的转换名称),即" imageAnimation"
只需将视图添加到其他活动(更大的版本会更好)并给它相同的转换名称..它将起作用..