J'ai un listview avec une méthode override getView pour le remplir. Maintenant, je veux que chaque élément de la liste s'anime ou se déplace du côté droit de l'écran vers le côté gauche où l'élément doit se trouver. de l'écran vers le côté gauche où l'élément devrait normalement apparaître.
l'animation de chaque élément ne doit pas démarrer en même temps, elle doit être retardée de quelques ms avant le déplacement des autres éléments...
Eh bien, c'est mon cours d'adaptation :
public class MyAdapter extends ArrayAdapter<String>{
private Context context;
private String[] info;
public MyAdapter(Context context, int resource,
String[] objects) {
super(context, resource, objects);
// TODO Auto-generated constructor stub
this.context = context;
this.info = objects;
}
protected class RowViewHolder {
public TextView text1;
public CheckBox cb;
public String ss;
}
@Override
public View getView(int pos, View inView, ViewGroup parent) {
View vix = inView;
RowViewHolder holder;
if (vix == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vix = inflater.inflate(R.layout.check_list, null);
}
holder = new RowViewHolder();
holder.text1 = (TextView) vix.findViewById(R.id.info_group);
holder.text1.setText(info[pos]);
holder.ss = info[pos];
holder.cb = (CheckBox) vix.findViewById(R.id.check);
holder.cb.setTag(holder.ss);
holder.cb.setOnCheckedChangeListener(CbListen);
vix.setTag(holder);
return vix;
}
private OnCheckedChangeListener CbListen = new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton com, boolean pool) {
// TODO Auto-generated method stub
String state = (com.getTag()).toString();
if(com.isChecked()){
System.out.println(state+" CHECKED");
}else{
System.out.println(state+" UNCHECKED");
}
}
};
}
Une idée ? :)
UPDATE
Eh bien, c'est sûrement le cas ! LOL :p
téléchargez juste ces ApiDemos "comme ce qu'a dit Farhan" et vous trouverez une sorte d'échantillon de LayoutAnimation2 dans la vue du paquet.
ici, chaque élément de la liste est animé pour se remplir vers le bas par translation-animation pendant que l'alpha change respectivement.
Voici ce que je fais pour mon affaire :
AnimationSet set = new AnimationSet(true);
Animation animation = new AlphaAnimation(0.0f, 1.0f);
animation.setDuration(500);
set.addAnimation(animation);
animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 50.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f
);
animation.setDuration(1000);
set.addAnimation(animation);
LayoutAnimationController controller = new LayoutAnimationController(set, 0.5f);
group_list.setLayoutAnimation(controller);
- Je l'ai placé sous ma fonction setAdapter(), vous pouvez le rendre plus agréable avec des effets d'accélération et de décélération, etc.
p