我正在开发一个应用程序,其中我有一个自定义列表视图。列表视图的一项包含四个文本框。应用程序的需求就像当我点击一个文本框,一个图像视图应该是可见的,放大然后缩小,缩小后,可见性应该消失。
我尝试的是:
在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)我有如下图所示的列表:
当我点击列表项目一,第一个textview,动画正在工作,但是当我点击列表视图2时,第一个textview动画正在列表项目1和列表项目2上工作。
我该怎么做?我错过了什么吗?请引导我提出宝贵的建议。
答案 0 :(得分:0)
无论是否可见,您都需要维护每个图像的状态数组。您必须在getView()
方法的每个ImageView上根据该状态数组应用可见性检查。现在,每当动画结束ImageView时,您必须更新状态数组中该图像的相应状态,然后调用notifyDataSetChanged()
。