Android 创建动画 onClick 的自定义 ImageView

标签 android onclick imageview android-animation

为 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/

相关文章:

java - android: 自定义 ImageView onDraw 方法无法在 y 轴上正确绘制

android - ImageView的src和背景有什么区别

android - 每个 ImageView 都需要 CardView 吗?

CheckedTextView 的 Android checkMarkGravity 属性(api 21)

Android - 在 Android Pie (API 28) RadialGradient 中绘制矩形而不是圆形

java - 在哪里初始化onLongClickListener

javascript - 如何通过 for 循环、mr[2] 和 test1[2] 添加 onclick

android - 如何使用 Android 11 中另一个前台服务的打开相机运行前台服务?

android - 无法在 android studio 的模拟器中启动 AVD。参数无效

javascript - 选择选项 onclick 更改 url 或更改 div