在之前的文章中,我们通过动画实现了这个,具体可以查看【Android 动画】动画详解之仿微信查看大图效果(四),这里,我们用过度动画来实现。
什么是共享元素?
它是Android 5.0新加入的一种过度动画,主要用于2个activity之间,可以共享某些控件,实现无缝转场的动画。
如何使用?
1.为共享元素指定统一的 transition name
2.启动 Activity 时带上共享元素参数
效果图
录制的gif 不是很流畅,实际效果还是很流畅的
首先,我们需要一个九宫格,9张图片
list = new ArrayList<>();
list.add("http://img1.imgtn.bdimg.com/it/u=4206294871,879077254&fm=26&gp=0.jpg");
list.add("http://img1.imgtn.bdimg.com/it/u=1901690610,3955011377&fm=200&gp=0.jpg");
list.add("http://img3.imgtn.bdimg.com/it/u=1546158593,2358526642&fm=200&gp=0.jpg");
list.add("http://img0.imgtn.bdimg.com/it/u=3792909229,2321547963&fm=200&gp=0.jpg");
list.add("http://img4.imgtn.bdimg.com/it/u=1621655683,865218969&fm=200&gp=0.jpg");
list.add("http://img5.imgtn.bdimg.com/it/u=4286838121,1364454560&fm=26&gp=0.jpg");
list.add("http://img5.imgtn.bdimg.com/it/u=551944592,1654216059&fm=26&gp=0.jpg");
list.add("http://img1.imgtn.bdimg.com/it/u=2550323596,2167297465&fm=200&gp=0.jpg");
list.add("http://img4.imgtn.bdimg.com/it/u=952962361,1269259737&fm=26&gp=0.jpg");
wxAdapter = new WxAdapter(list);
rvWx2.setLayoutManager(new GridLayoutManager(WX2Activity.this, 3));
rvWx2.setAdapter(wxAdapter);
wxAdapter.bindToRecyclerView(rvWx2);
WxAdapter,这里使用的是 BaseRecyclerViewAdapterHelper
class WxAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
public WxAdapter(List<String> list) {
super(R.layout.item_wx2, list);
}
@Override
protected void convert(BaseViewHolder helper, String item) {
ImageView iv_img = helper.getView(R.id.iv_wx_img);
Glide.with(mContext).load(item).apply(new RequestOptions().centerCrop()).into(iv_img);
}
}
<