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