Есть ли onImageChangedListener () в ImageView?
Мне нужно событие, когда изображение будет изменено из ImageView.
Проверьте код изображения в grepcode. Вы не знаете, когда оно будет изменено или перерисовано. Это связано с тем, что после того, как вы установили функцию setImageDrawable (), изображение будет недействительным. В это время изображение НЕ ИЗМЕНЕНО, пока не вызывается ondraw.
Во всяком случае, почему вы хотите знать onimagechangedlistener?
В Android нет прослушивателя по умолчанию, но мы можем создать диспетчер обмена изображениями. Скопируйте класс и вместо использования 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); } }
Если вы хотите загрузить изображение из сети и проверить изменение в представлении изображения, вы можете использовать imageView.isAttachedToWindow (). Я попытался загрузить изображение из сети и отключил индикатор прогресса после загрузки и прикрепления изображения к окну. Использование,
if(imageView.isAttachedToWindow()){ //your code here }