如题,我想在gridview中的某一个指定的view中设置一个抖动的动画,但我发现如果是这样写:
bankAdapter = new CustomGridAdapter(MainActivity.this, bankItems);
bankGrid.setAdapter(bankAdapter);
//动画
Animation shakeAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.shake_x);
//获取gridview中的第2个view
RelativeLayout viewAnim =(RelativeLayout) bankGrid.getChildAt(2);
if (viewAnim !=null) {
ImageView img = (ImageView) viewAnim.findViewById(R.id.ItemImage) ;
img.startAnimation(shakeAnim);
}
bankGrid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
这时viewAnim的返回值是为null ,动画无法执行。
如果改为下面这样子:
bankAdapter = new CustomGridAdapter(MainActivity.this, bankItems);
bankGrid.setAdapter(bankAdapter);
bankGrid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Animation shakeAnim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.shake_x);
RelativeLayout viewAnim =(RelativeLayout) bankGrid.getChildAt(2-bankGrid.getFirstVisiblePosition());
if (viewAnim !=null) {
ImageView img = (ImageView) viewAnim.findViewById(R.id.ItemImage) ;
img.startAnimation(shakeAnim);
}
}
那么在点击gridview中任意一项之后,第二个view就可以实现抖动的动画效果。
但是,我需要的是在没有点击gridview的情况下,即一进入应用,gridview中第二个view(按钮)就立即开始抖动,而不是监听点击事件后才执行。求问怎么才能实现??