Android 分别显示动画视图

Android 分别显示动画视图,android,android-animation,Android,Android Animation,我有六个图像视图和文本视图。 它们一开始是隐藏的(android:visibility=“gone”)。 我将它们存储在两个数组中:arr\u image\u views和arr\u text\u views。 我想分别给他们看 我上了一堂FadeAnimationClass private class FadeAnimationClass implements AnimationListener{ private TextView txtview; private Image

我有六个图像视图和文本视图。 它们一开始是隐藏的(
android:visibility=“gone”
)。 我将它们存储在两个数组中:
arr\u image\u views
arr\u text\u views
。 我想分别给他们看

我上了一堂FadeAnimationClass

private class FadeAnimationClass implements AnimationListener{

    private TextView txtview;
    private ImageView imageview ;

    public FadeAnimationClass(TextView t , ImageView i){
        this.txtview    = t ;
        this.imageview  = i ;

    }


    @Override
    public void onAnimationEnd(Animation animation) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub

        txtview.setVisibility(View.VISIBLE);
        imageview.setVisibility(View.VISIBLE);
    }

}


现在,我想分别启动动画:

    for(int i=0 ; i <arr_image_views.size() ; ++i){

        if(current_cat.equalsIgnoreCase(arr_cat.get(i))){
             animFadeIn.setAnimationListener(new FadeAnimationClass(arr_text_views.get(i),arr_image_views.get(i)));
             animFadeIn.setDuration(2000);
             arr_image_views.get(i).setAnimation(animFadeIn);
             arr_text_views.get(i).setAnimation(animFadeIn);                 
             animFadeIn.start();
             arr_image_views.remove(arr_image_views.get(i));
             arr_text_views.remove(arr_text_views.get(i));
                for(int j=0 ; j <arr_image_views.size() ; ++j){
                     animFadeIn.setAnimationListener(new FadeAnimationClass(arr_text_views.get(j),arr_image_views.get(j)));
                     animFadeIn.setDuration(4000);
                     arr_image_views.get(j).setAnimation(animFadeIn);
                     arr_text_views.get(j).setAnimation(animFadeIn);
                     animFadeIn.start();                         

                }
                break ;
        }
    }

for(int i=0;我认为应该为第一个imageview和textview加载第一个动画,然后在onAnimationEnd()中加载回调,你应该为第二个imageview和textview启动下一个动画…依此类推,直到最后一个元素。我不确定我是否理解你的问题-是动画运行不正常吗?不是所有的图像都显示出来了吗?请澄清。我猜你是因为使用了animFadeIn而出现问题的(一个实例)用于设置多个视图的动画(在循环中…),这就是为什么只显示最后一个视图的原因。
    for(int i=0 ; i <arr_image_views.size() ; ++i){

        if(current_cat.equalsIgnoreCase(arr_cat.get(i))){
             animFadeIn.setAnimationListener(new FadeAnimationClass(arr_text_views.get(i),arr_image_views.get(i)));
             animFadeIn.setDuration(2000);
             arr_image_views.get(i).setAnimation(animFadeIn);
             arr_text_views.get(i).setAnimation(animFadeIn);                 
             animFadeIn.start();
             arr_image_views.remove(arr_image_views.get(i));
             arr_text_views.remove(arr_text_views.get(i));
                for(int j=0 ; j <arr_image_views.size() ; ++j){
                     animFadeIn.setAnimationListener(new FadeAnimationClass(arr_text_views.get(j),arr_image_views.get(j)));
                     animFadeIn.setDuration(4000);
                     arr_image_views.get(j).setAnimation(animFadeIn);
                     arr_text_views.get(j).setAnimation(animFadeIn);
                     animFadeIn.start();                         

                }
                break ;
        }
    }