我有GridView
我不断添加观点。当视图添加到网格时,我希望它能够进行动画制作。但是,由于我必须使用setAdapter()
来刷新GridView
,因此最终会为所有视图设置动画,因为它们都会被重新添加。反正有吗?
以下是我添加的观点代码:
public class GridImageView extends ImageView {
public GridImageView(Context context) {
super(context);
}
public GridImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public GridImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
ScaleAnimation anim = new ScaleAnimation(0,1,0,1);
anim.setDuration(1000);
anim.setFillAfter(true);
this.startAnimation(anim);
}
}
一如既往,感谢您的帮助
答案 0 :(得分:0)
感谢Luksprog的建议,我在自定义视图中设置了一个标志,用于确定视图在添加到网格视图时是否应该设置动画。
public class GridImageView extends ImageView
{
private boolean _animate = false;
public GridImageView(Context context) {
super(context);
}
public GridImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public GridImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onAttachedToWindow() {
if(_animate){
super.onAttachedToWindow();
ScaleAnimation anim = new ScaleAnimation(0,1,0,1);
anim.setDuration(1000);
anim.setFillAfter(true);
this.startAnimation(anim);
}
}
public void set_animate(boolean _animate) {
this._animate = _animate;
}
}
并且我的GetView()
函数中的适配器检查它是否是数组列表中的最后一个,如果是,则将标志设置为true。
if( i == ( _gridDetailsArrayList.size() - 1 ))
holder.gridImage.set_animate(true);