package me.xiaopan.sketchsample.adapter.itemfactory;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import butterknife.BindView;
import me.xiaopan.assemblyadapter.AssemblyRecyclerItemFactory;
import me.xiaopan.sketchsample.ImageOptions;
import me.xiaopan.sketchsample.R;
import me.xiaopan.sketchsample.adapter.BindAssemblyRecyclerItem;
import me.xiaopan.sketchsample.bean.ThreeStarRight;
import me.xiaopan.sketchsample.widget.MyImageView;
public class HotStarThreeRightItemFactory extends AssemblyRecyclerItemFactory<HotStarThreeRightItemFactory.HotStarThreeLeftItem> {
private HotStarThreeLeftItemFactory.OnStarClickListener imageClickListener;
private int marginBorder;
private int availableScreenWidth;
public HotStarThreeRightItemFactory(HotStarThreeLeftItemFactory.OnStarClickListener imageClickListener) {
this.imageClickListener = imageClickListener;
}
@Override
public boolean isTarget(Object o) {
return o instanceof ThreeStarRight;
}
@Override
public HotStarThreeLeftItem createAssemblyItem(ViewGroup viewGroup) {
return new HotStarThreeLeftItem(R.layout.list_item_hot_star_three_right, viewGroup);
}
public class HotStarThreeLeftItem extends BindAssemblyRecyclerItem<ThreeStarRight> {
@BindView(R.id.image_hotStarThreeRightItem_one)
MyImageView oneImageView;
@BindView(R.id.image_hotStarThreeRightItem_two)
MyImageView twoImageView;
@BindView(R.id.image_hotStarThreeRightItem_three)
MyImageView threeImageView;
@BindView(R.id.text_hotStarThreeRightItem_one)
TextView oneNameTextView;
@BindView(R.id.text_hotStarThreeRightItem_two)
TextView twoNameTextView;
@BindView(R.id.text_hotStarThreeRightItem_three)
TextView threeNameTextView;
public HotStarThreeLeftItem(int itemLayoutId, ViewGroup parent) {
super(itemLayoutId, parent);
}
@Override
protected void onConfigViews(Context context) {
oneImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (imageClickListener != null) {
imageClickListener.onClickImage(getData().star1);
}
}
});
twoImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (imageClickListener != null) {
imageClickListener.onClickImage(getData().star2);
}
}
});
threeImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (imageClickListener != null) {
imageClickListener.onClickImage(getData().star3);
}
}
});
if (marginBorder == 0) {
marginBorder = (int) context.getResources().getDimension(R.dimen.home_category_margin_border_2);
availableScreenWidth = context.getResources().getDisplayMetrics().widthPixels - (marginBorder * 2);
}
int itemWidth = (availableScreenWidth - marginBorder) / 2;
int itemHeight = (int) (itemWidth / 0.75);
ViewGroup.LayoutParams params = threeImageView.getLayoutParams();
params.width = itemWidth;
params.height = itemHeight;
threeImageView.setLayoutParams(params);
threeImageView.setOptionsByName(ImageOptions.RECT);
params = twoImageView.getLayoutParams();
params.width = itemWidth;
params.height = (itemHeight - marginBorder) / 2;
twoImageView.setLayoutParams(params);
twoImageView.setOptionsByName(ImageOptions.RECT);
params = oneImageView.getLayoutParams();
params.width = itemWidth;
params.height = (itemHeight - marginBorder) / 2;
oneImageView.setLayoutParams(params);
oneImageView.setOptionsByName(ImageOptions.RECT);
}
@Override
protected void onSetData(int position, ThreeStarRight threeStarRight) {
oneNameTextView.setText(threeStarRight.star1.getName());
twoNameTextView.setText(threeStarRight.star2.getName());
threeNameTextView.setText(threeStarRight.star3.getName());
oneImageView.setTag(threeStarRight.star1);
twoImageView.setTag(threeStarRight.star2);
threeImageView.setTag(threeStarRight.star3);
oneImageView.displayImage(threeStarRight.star1.getWidthImage().getUrl());
twoImageView.displayImage(threeStarRight.star2.getWidthImage().getUrl());
threeImageView.displayImage(threeStarRight.star3.getHeightImage().getUrl());
int topMargin;
int bottomMargin;
if (position == 0) {
topMargin = marginBorder;
bottomMargin = marginBorder / 2;
} else if (position == getAdapter().getItemCount() - 1) {
topMargin = marginBorder / 2;
bottomMargin = marginBorder;
} else {
topMargin = marginBorder / 2;
bottomMargin = marginBorder / 2;
}
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) getItemView().getLayoutParams();
params.topMargin = topMargin;
params.bottomMargin = bottomMargin;
getItemView().setLayoutParams(params);
}
}
}