Android:设置动画视图的可见性

时间:2016-01-14 05:18:30

标签: android animation android-animation android-adapter

我正在开发一个应用程序,其中我有一个自定义列表视图。列表视图的一项包含四个文本框。应用程序的需求就像当我点击一个文本框,一个图像视图应该是可见的,放大然后缩小,缩小后,可见性应该消失。

我尝试的是:

在getView方法的适配器中

if(clickPosition == position){  
    holder.imageViewOne.setVisibility(View.VISIBLE);
    holder.imageViewOne.startAnimation(zoominout);
    zoominout.setAnimationListener(new AnimationListener() {
        @Override
        public void onAnimationStart(Animation arg0) {}

        @Override
        public void onAnimationRepeat(Animation arg0) {}

        @Override
        public void onAnimationEnd(Animation arg0) {
            holder.imageViewOne.setVisibility(View.GONE);
            clickedPosition = -1;
        }
    });
}

我的动画XML

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="3"
    android:toYScale="3" >
</scale>

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.5"
    android:toYScale="0.5"
    android:startOffset="2000" >
</scale>

</set>

当我运行我的应用程序时,动画效果很好。

问题是:

1)图像视图中的可见性无效。

2)我有如下图所示的列表:

enter image description here

当我点击列表项目一,第一个textview,动画正在工作,但是当我点击列表视图2时,第一个textview动画正在列表项目1和列表项目2上工作。

我该怎么做?我错过了什么吗?请引导我提出宝贵的建议。

1 个答案:

答案 0 :(得分:0)

无论是否可见,您都需要维护每个图像的状态数组。您必须在getView()方法的每个ImageView上根据该状态数组应用可见性检查。现在,每当动画结束ImageView时,您必须更新状态数组中该图像的相应状态,然后调用notifyDataSetChanged()