Czy na ImageView jest onImageChangedListener()?ImageView onImageChangedListener Android
Potrzebuję zdarzenia, gdy obraz zostanie zmieniony z ImageView.
Czy na ImageView jest onImageChangedListener()?ImageView onImageChangedListener Android
Potrzebuję zdarzenia, gdy obraz zostanie zmieniony z ImageView.
Sprawdź kod ImageView w grepcode. Nie wiesz, kiedy zostanie zmieniony lub przerysowany. Dzieje się tak dlatego, że po ustawieniu imageImageDrawable() widok obrazu zostanie unieważniony. W tej chwili obraz NIE ZMIENIA się poprawnie, dopóki nie zostanie wywołany ondraw.
W każdym razie, dlaczego chcesz wiedzieć, na czym polega onimagechangedlistener?
Nie ma domyślnego słuchacz w Androidzie .. ale możemy stworzyć listiner imagechange .. skopiuj klasę i zamiast używać use 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);
}
}
Co mam zaimportować, aby "OnImageChangeListiner nie mógł zostać rozwiązany na typ"? – Naskov
skopiuj tę klasę w dowolnym pakiecie ... import nazwa pakietu.MyImageView; – Sandy09
Powinieneś zaimplementować interfejs w swoim działaniu i zastąpić imageChangedInView(). 'extends Activity implements OnImageChangeListiner' – Simon
Jeśli chcesz załadować obraz z sieci i sprawdzić zmianę w widoku obrazu, możesz użyć imageView.isAttachedToWindow(). Próbowałem pobrać obraz z sieci i wyłączyłem pasek postępu po pobraniu i dołączeniu obrazu do okna. Użyj,
if(imageView.isAttachedToWindow()){
//your code here
}
W jaki sposób zmienia się obraz? – Simon
Obraz zostanie zmieniony naButtonClick, wybierając go z aparatu lub karty SD. – Naskov
Mam na myśli dokładnie, jak zmieniasz obraz? setImageBitmap? setImageDrawable? Inny? – Simon