package us.pinguo.edit.sdk.adapter; import android.content.Context; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import us.pinguo.edit.sdk.R; import us.pinguo.edit.sdk.base.PGEditTools; import us.pinguo.edit.sdk.base.widget.LinearHoriScrollView; import us.pinguo.edit.sdk.core.model.PGEftDispInfo; import us.pinguo.edit.sdk.core.utils.SystemUtils; import us.pinguo.edit.sdk.widget.ImageLoaderView; public class PGEditEffectHoriScrollItemAdapter extends PGEditEffectSelectAdapter { private View.OnClickListener mOnItemViewClickListener; private View.OnClickListener mOnScrollClickListener; private Context mContext; private View mLastSelectedView; private View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { View effectState = v.findViewById(R.id.effect_state_parent); if (effectState.getVisibility() == View.VISIBLE) { if (mOnScrollClickListener != null) { mOnScrollClickListener.onClick(v); } } else { effectState.setVisibility(View.VISIBLE); if (mOnItemViewClickListener != null) { mOnItemViewClickListener.onClick(v); } if (mLastSelectedView != null) { mLastSelectedView.findViewById(R.id.effect_state_parent).setVisibility(View.INVISIBLE); } mLastSelectedView = v; } } }; private boolean isShowFirstPosition = true; private String mMaskResource; public PGEditEffectHoriScrollItemAdapter(LinearHoriScrollView parentView, int selectPosition) { super(parentView, selectPosition); } @Override public int getCount() { if (isShowFirstPosition) { return super.getCount() + 1; } else { return super.getCount(); } } @Override public PGEftDispInfo getItem(int position) { if (isShowFirstPosition) { return (PGEftDispInfo) super.getItem(position - 1); } else { return (PGEftDispInfo) super.getItem(position); } } @Override public View initView(LinearHoriScrollView parent, Context context, int position) { View item; if (isShowFirstPosition && position == 0) { item = View.inflate(context, R.layout.layout_effect_select_empty, null); } else { PGEftDispInfo effect = getItem(position); item = View.inflate(context, R.layout.layout_effect_select_item, null); ImageLoaderView icon = (ImageLoaderView) item.findViewById(R.id.effect_image); icon.setScaleType(ImageView.ScaleType.FIT_XY); icon.setImageUrl(effect.getIconFileUrl(context)); TextView text = (TextView) item.findViewById(R.id.effect_text); ImageView maskImageView = (ImageView) item.findViewById(R.id.effect_mask); View effectStateParent = item.findViewById(R.id.effect_state_parent); //隐藏掉特效选中状态 item.findViewById(R.id.effect_selected).setVisibility(View.GONE); effectStateParent.setVisibility(View.GONE); maskImageView.setImageResource(PGEditTools.getDrawableByName(mContext, mMaskResource)); int color = effect.getColor(); maskImageView.setBackgroundColor(color & 0xb3ffffff); text.setBackgroundColor(color); String info = SystemUtils.getLocationInfo(); text.setText(effect.getName(info.replace("-", "_"))); item.setTag(effect); item.setOnClickListener(mOnClickListener); //进入三级菜单的时候,如果上次点击中的话,就让它处于选中状态 if (mLastSelectedView != null) { PGEftDispInfo lastEffect = (PGEftDispInfo) mLastSelectedView.getTag(); if (lastEffect.eft_key.equals(effect.eft_key)) { item.findViewById(R.id.effect_state_parent).setVisibility(View.VISIBLE); mLastSelectedView = item; } } } return item; } public void setMaskResource(String maskResource) { mMaskResource = maskResource; } public void hideFirstPosition() { isShowFirstPosition = false; } public void setContext(Context context) { this.mContext = context; } public void setOnItemViewClickListener(View.OnClickListener mOnItemViewClickListener) { this.mOnItemViewClickListener = mOnItemViewClickListener; } public void setOnScrollClickListener(View.OnClickListener mOnScrollClickListener) { this.mOnScrollClickListener = mOnScrollClickListener; } public void setLastSelectedView(View lastSelectedView) { mLastSelectedView = lastSelectedView; } }