安卓程序的一个逻辑小问题求解

程序上有一个小逻辑需要处理,但是自己想了很久但是没有一个很好的办法,希望各位大神能够赐教,如果不吝写个demo就更好了,我做的是一个自定义的listview想实现的效果就是点击的那个item会变大,初始化加载列表的时候执行了一个 startScaleTo(convertView, 0.6f, 0.6f);函数,即初始化的时候没一个item都是缩小的。
下面是我逻辑上的问题,我想实现点击一个item执行startScaleAnimator(view,0.6f, 1.0f);放大函数,再点击另一个item的时候另一个item也执行放大函数 然后之前点击的这个item执行缩小函数,还有一个就是如果点击同一个item只执行一次放大函数,求各位大神赐教啊!!这里想了个好久,可能有一些方法我还不是很了解

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
getCheckedItemPosition();
// startScaleAnimator(view.getChildAt(scaleFlagIndex), 1.0f, 0.6f);
这里面的逻辑搞不清楚了。。。
}

那么,我来问你,你做这个效果的目的是什么呢?感觉很神奇很炫酷?

如果你执意要这么做,那么我给你说说思路吧,代码我就不写了。

首先,在OnItemClickListener里边调用修改ListView的Item的View是大错特错的!因为ListView的Item有缓冲机制,而且在除了适配器的getView函数的任何一个地方修改Item的View都会导致意想不到的错误。

其次,在适配器的getView函数中是能够直接操作到item的最外层ViewGroup的,所以应该在这里修改。**另外,不建议你直接修改View的scale,你可以通过NineOldAndroid这个动画框架来改Scale**。那么像你说的,初始化一个scale,点击了之后又是另一个scale,应该定义一个实体类,这个实体类是作为适配器的基本数据类型,实体类中以一个int来表示scale,这样的话,在getView函数中,根据传入的实体类得到当前的item的scale值,再设置就行了。这样的话,你甚至能通过传入的实体类控制不同的item显示各种不同的效果。

说白了一句话就是,**对于ListView这种以适配器为基础的容器类的时候,要修改它的item,都得在适配器中修改**。

还不如给item加动画