0
从回收观点适配器项目的图像转换为图像//我有回收观点如下在工具栏
private void prepareGridRecycleView() {
gridRecyclerView.setHasFixedSize(true);
SpaceItemGridDecoration itemDecoration = new SpaceItemGridDecoration(10);
gridRecyclerView.setClipToPadding(false);
gridRecyclerView.addItemDecoration(itemDecoration);
adapter = new ShopPageGridViewAdapter(ShopPageContent.this, new ShopPageHeaderGridInterface() {
@Override
public void onClick(boolean isClicked) {
gridRecyclerView.setVisibility(View.INVISIBLE);
listRecycleView.setVisibility(View.VISIBLE);
}
}, new ShopPageHeaderListInterface() {
@Override
public void onClick(boolean isClicked) {
}
}, new CartCoordivateInfoHolder() {
@Override
public void setViewCoordinate(ImageView view, int x, int y) {
view.setVisibility(View.VISIBLE);
int pos[] = new int[2];
cart.getLocationOnScreen(pos);
Log.e("x", String.valueOf(pos[0]));
Log.e("y", String.valueOf(pos[1]));
view.bringToFront();
Animations anim = new Animations();
Animation a = anim.fromAtoB(20, 30, 6000,6000,null,850);
a.setFillAfter(true);
view.setAnimation(a);
a.startNow();
}
}, new ShopPageHeaderHelpInterface() {
@Override
public void onClick(boolean isClicked) {
AlertDialog.Builder builder = new AlertDialog.Builder(ShopPageContent.this);
View view = getLayoutInflater().inflate(R.layout.help_dialog, null);
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();
alertDialog.setCanceledOnTouchOutside(true);
}
}, new ShopPageHeaderFilterInterface() {
@Override
public void onClick(boolean isClick) {
AlertDialog.Builder builder = new AlertDialog.Builder(ShopPageContent.this);
View view = getLayoutInflater().inflate(R.layout.filter_dialog, null);
LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.circle_view_child);
RangeSeekbar seekBar = (RangeSeekbar) view.findViewById(R.id.seekbar);
seekBar.setTextMarkSize(0);
prepareCircleImage(linearLayout);
final TextView s = (TextView) view.findViewById(R.id.s);
final TextView m = (TextView) view.findViewById(R.id.m);
final TextView l = (TextView) view.findViewById(R.id.l);
final TextView xl = (TextView) view.findViewById(R.id.xl);
final TextView xxl = (TextView) view.findViewById(R.id.xxl);
final TextView xxxl = (TextView) view.findViewById(R.id.xxxl);
s.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(s);
}
});
l.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(l);
}
});
m.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(m);
}
});
xl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(xl);
}
});
xxl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(xxl);
}
});
xxxl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setBackground(xxxl);
}
});
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();
alertDialog.setCanceledOnTouchOutside(true);
}
});
final GridLayoutManager manager = new GridLayoutManager(this, 2);
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return adapter.isPositionHeader(position) ? manager.getSpanCount() : 1;
}
});
gridRecyclerView.setAdapter(adapter);
gridRecyclerView.setLayoutManager(manager);
}
//回收站视图适配器似乎如下
public class ShopPageGridViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
private List<String> list = new ArrayList<>();
private Context context;
private ShopPageHeaderGridInterface shopPageHeaderGridInterface;
private ShopPageHeaderListInterface shopPageHeaderListInterface;
private ShopPageHeaderFilterInterface shopPageHeaderFilterInterface;
private CartCoordivateInfoHolder cartCoordivateInfoHolder;
private ShopPageHeaderHelpInterface shopPageHeaderHelpInterface;
public ShopPageGridViewAdapter(Context context, ShopPageHeaderGridInterface shopPageHeaderGridInterface, ShopPageHeaderListInterface shopPageHeaderListInterface, CartCoordivateInfoHolder cartCoordivateInfoHolder, ShopPageHeaderHelpInterface shopPageHeaderHelpInterface, ShopPageHeaderFilterInterface shopPageHeaderFilterInterface) {
this.context = context;
this.shopPageHeaderGridInterface = shopPageHeaderGridInterface;
this.shopPageHeaderListInterface = shopPageHeaderListInterface;
this.cartCoordivateInfoHolder = cartCoordivateInfoHolder;
this.shopPageHeaderHelpInterface = shopPageHeaderHelpInterface;
this.shopPageHeaderFilterInterface = shopPageHeaderFilterInterface;
for (int i = 0; i <= 10; i++) {
list.add("hello");
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_HEADER) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.shop_page_grid_layout_header, parent, false);
final ImageView heroImageView = (ImageView) v.findViewById(R.id.heroImageView);
heroImageView.post(new Runnable() {
@Override
public void run() {
heroImageView.getLayoutParams().height = (int) (heroImageView.getWidth() * 0.63);
}
});
final ImageView stackImage = (ImageView) v.findViewById(R.id.stack_image);
ImageView helpImage = (ImageView) v.findViewById(R.id.help);
final ImageView filterImage = (ImageView) v.findViewById(R.id.filter_image);
stackImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shopPageHeaderGridInterface.onClick(true);
}
});
final ImageView gridImage = (ImageView) v.findViewById(R.id.grid_image);
gridImage.post(new Runnable() {
@Override
public void run() {
gridImage.getLayoutParams().height = (int) (gridImage.getHeight() * 0.80);
gridImage.getLayoutParams().width = (int) (gridImage.getWidth() * 0.80);
stackImage.getLayoutParams().height = (int) (stackImage.getHeight() * 0.80);
stackImage.getLayoutParams().width = (int) (stackImage.getWidth() * 0.80);
filterImage.getLayoutParams().height = (int) (filterImage.getHeight() * 0.80);
filterImage.getLayoutParams().width = (int) (filterImage.getWidth() * 0.80);
}
});
gridImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shopPageHeaderListInterface.onClick(true);
}
});
helpImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shopPageHeaderHelpInterface.onClick(true);
}
});
filterImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shopPageHeaderFilterInterface.onClick(true);
}
});
return new VHHeader(v);
} else if (viewType == TYPE_ITEM) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.shop_page_grid_layout, parent, false);
final RelativeLayout relativeLayout = (RelativeLayout) v.findViewById(R.id.grid_parent);
final ImageView gridItemImage=(ImageView)v.findViewById(R.id.grid_item_image);
new Handler().post(new Runnable() {
@Override
public void run() {
relativeLayout.getLayoutParams().height = (int) (relativeLayout.getWidth() * 1.2);
relativeLayout.requestLayout();
gridItemImage.setImageResource(R.drawable.winter_sale);
}
});
final ImageView cart = (ImageView) v.findViewById(R.id.cart);
final ImageView cartNumber = (ImageView) v.findViewById(R.id.cart_number);
cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos[] = new int[2];
cartNumber.getLocationOnScreen(pos);
Log.e("x", String.valueOf(pos[0]));
Log.e("y", String.valueOf(pos[1]));
cartCoordivateInfoHolder.setViewCoordinate(cartNumber, pos[0], pos[1]);
}
});
return new VHItem(v);
}
throw new RuntimeException("there is no type that matches the type " + viewType + " + make sure your using types correctly");
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof VHHeader) {
VHHeader VHheader = (VHHeader) holder;
} else if (holder instanceof VHItem) {
VHItem VHitem = (VHItem) holder;
}
}
// need to override this method
@Override
public int getItemViewType(int position) {
if (isPositionHeader(position))
return TYPE_HEADER;
return TYPE_ITEM;
}
public boolean isPositionHeader(int position) {
return position == 0;
}
//increasing getItemcount to 1. This will be the row of header.
@Override
public int getItemCount() {
return list.size() + 1;
}
class VHHeader extends RecyclerView.ViewHolder {
public VHHeader(View itemView) {
super(itemView);
}
}
class VHItem extends RecyclerView.ViewHolder {
public VHItem(View itemView) {
super(itemView);
}
}
}
//因此,我面临的问题是我在回收站查看项目中有购物车图像,点击时图像应该转换为工具栏上的购物车图标。但是当在回收站视图中点击时,购物车中的物品在项目中移动,而不是出现回收查看..
按照文档SharedElementTransition在两个活动之间进行,但在我的情况下,图像在同一活动的工具栏的循环图和车体内。所以我详细阐述一下,以便我可以继续完整的了解 –
是的,你可以做的是,当点击回收站视图中的一个项目时,导航到其他视图,在工具栏中显示图像。使用这两个活动之间的共享元素转换将为您提供您所需的相同效果 – 1shubhamjoshi1