为 View 创建动画.. 来自 developer.android.com:
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
我想知道我是否可以扩展 ImageView,以便我创建的每个 MyImageView 在单击时都会有动画。
我还应该在 MyImageView 类之外为每个 MyImageView 设置一个不同的 OnClickListener。
这可能吗?
最佳答案
尝试这种方法...
public class MyImageView extends ImageView implements
View.OnClickListener {
private View.OnClickListener clickListener;
public MyImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setOnClickListener(this);
}
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
setOnClickListener(this);
}
public MyImageView(Context context) {
super(context);
setOnClickListener(this);
}
@Override
public void setOnClickListener(OnClickListener l) {
if (l == this) {
super.setOnClickListener(l);
} else {
clickListener = l;
}
}
@Override
public void onClick(View v) {
// start the Animation...
// handle click event yourself and pass the event to supplied
// listener also...
if (clickListener != null) {
clickListener.onClick(this);
}
}
}
关于Android 创建动画 onClick 的自定义 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309547/