ImageView onImageChangedListener Android

Nas*_*kov 10 android image actionlistener imageview

ImageView上是否有onImageChangedListener()?

从ImageView更改图像时,我需要事件.

San*_*p P 22

Android中没有默认监听器..但是我们可以创建imagechange列表器..复制类而不是使用ImageView使用MyImageView ..

 public class MyImageView extends ImageView {

        private OnImageChangeListiner onImageChangeListiner;


        public MyImageView(Context context) {
            super(context);
        }

        public MyImageView(Context context, AttributeSet attributeSet) {         
            super(context, attributeSet); 
        }


        public void setImageChangeListiner(
                OnImageChangeListiner onImageChangeListiner) {
            this.onImageChangeListiner = onImageChangeListiner;
        }

        @Override
        public void setBackgroundResource(int resid) {
            super.setBackgroundResource(resid);
            if (onImageChangeListiner != null)
                onImageChangeListiner.imageChangedinView(this);
        }


        @Override
        public void setBackgroundDrawable(Drawable background) {
            super.setBackgroundDrawable(background);
            if (onImageChangeListiner != null)
                onImageChangeListiner.imageChangedinView(this);
        }


        public static interface OnImageChangeListiner {
            public void imageChangedinView(ImageView mImageView);
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记添加此构造函数,否则在从XML扩展视图时可能会崩溃:`public mImageView(Context context,AttributeSet attributeSet){super(context,attributeSet); }` (2认同)

小智 4

检查grepcode中的imageview代码。你不知道它什么时候改变或重新绘制。这是因为setImageDrawable()之后,imageview就会失效。此时,在调用 ondraw 之前图像不会正确更改。

不管怎样,你为什么想知道 onimagechangedlistener 呢?