错误是: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setScaleX(float)' on a null object reference
希望遇到过同样情况的大神给予指点
下面贴出我的代码
package net.bmvod.jukeboxv2;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ListView;
public class LvListView extends ListView implements AdapterView.OnItemClickListener {
private boolean flag = true;
private int lastPosition = 0 ;
public LvListView(Context context) {
this(context, null);
}
public LvListView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public LvListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOnItemClickListener(this);
}
public void startScaleAnimator(final View view, float start, float end) {
final ValueAnimator animator = ValueAnimator.ofFloat(start, end);
animator.setDuration(300);
animator.start();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (Float) animation.getAnimatedValue();
view.setScaleX(value);
view.setScaleY(0.4f + (0.6f * value));
}
});
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (flag == true) {
startScaleAnimator(view, 0.6f, 1.0f);
lastPosition = position;
flag = false;
} else {
if(lastPosition == position){
//startScaleAnimator(parent.getChildAt(lastPosition), 1.0f, 0.6f);
lastPosition = position;
}else{
startScaleAnimator(view, 0.6f, 1.0f);
startScaleAnimator(parent.getChildAt(lastPosition), 1.0f, 0.6f);
lastPosition = position;
}
}
}
}
自定义的listview和adapter实现item的动画效果 然后刚加载出来的时候是没有问题的 但是如果列表下拉列表再点击item程序就会崩溃 并报错在 animator.addUpdateListener里面 view.setScaleX(value);这一行有错误,不清楚什么原因,求大神帮忙指点一下