public class BottomAdapter extends BaseAdapter{
private Context context;
private List<BottomBean> list;
private DisplayImageOptions options;
public BottomAdapter(Context context, List<BottomBean> list) {
super();
this.context = context;
this.list = list;
options=ImageLoaderService.setCommonRoundViewConfig(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public BottomBean getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder=null;
if(convertView==null) {
convertView=LayoutInflater.from(context).inflate(R.layout.item_bottom, null);
holder=new ViewHolder(convertView);
convertView.setTag(holder);
}else {
holder=(ViewHolder) convertView.getTag();
}
BottomBean item=getItem(position);
holder.imvIcon.setBackgroundResource(item.icon);
holder.tvName.setText(item.name);
final ViewHolder holderTemp=holder;
if(position==current_select_position){
startFocus(holderTemp.imvIcon);
}
if(position==pre_select_position) {
looseFocus(holderTemp.imvIcon);
}
return convertView;
}
private int current_select_position=-1;
private int pre_select_position=-1;
public void select(int position) {
// TODO Auto-generated method stub
pre_select_position=current_select_position;
current_select_position=position;
if(current_select_position==pre_select_position) {
return;
}
notifyDataSetChanged();
}
float to=1.2f;
private void startFocus(ImageView imvIcon) {
// TODO Auto-generated method stub
Animation anim = new ScaleAnimation(1.0f, to,
1.0f, to, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
anim.setFillAfter(true);
anim.setInterpolator(new AccelerateInterpolator());
anim.setDuration(100);
imvIcon.setAnimation(anim);
anim.startNow();
}
private void looseFocus(ImageView imvIcon) {
// TODO Auto-generated method stub
Animation anim = new ScaleAnimation(to, 1.0f,
to, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
anim.setFillAfter(true);
anim.setInterpolator(new AccelerateInterpolator());
anim.setDuration(100);
imvIcon.setAnimation(anim);
anim.startNow();
}
class ViewHolder{
RelativeLayout rlBottom;
ImageView imvIcon;
TextView tvName;
public ViewHolder(View convertView) {
rlBottom=(RelativeLayout) convertView.findViewById(R.id.rlBottom);
imvIcon=(ImageView) convertView.findViewById(R.id.imvIcon);
tvName=(TextView) convertView.findViewById(R.id.tvName);
}
}
}