请参阅http://www.passsy.de/multitouch-for-all-views/#comment-47486,其中最相关的代码如下所示。
如果按下一个扩展按钮的“TestButton”,则该视图将传递给我的“TestButton”代码,我可以为该按钮/视图设置动画。但我也想为另一个视图设置动画。如何使用我在此处创建的视图为不同的视图设置动画,或者如何通知我的活动以执行操作?这适用于触摸的按钮:
startAnimation(animationstd);
但在另一个按钮上:
useiv.startAnimation(animationstd);
导致空指针异常。
代码:
package de.passsy.multitouch;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Button;
public class TestButton extends Button {
public TestButton(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(final MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
final Animation animationstd = AnimationUtils.loadAnimation(getContext(),
R.anim.fromleft);
useiv = (TestButton) findViewById(R.id.imageButton1);
useiv.startAnimation(animationstd); //this line = null pointer exception
}
return super.onTouchEvent(event);
}
}