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 ;
}
}