C'è una vista di scorrimento tra l'intestazione (nella parte superiore dello schermo) e le Schede (in basso dello schermo). Voglio sapere se l'ImageView che si trova all'interno di ScrollView è completamente visibile o meno sulla finestra dello schermo del telefono.Come sapere se Visualizza all'interno di Scorrere è Visibile completamente o no
risposta
vorrei suggerire di fare nel seguente modo (l'approccio è simile a quello in this question).
E.g. Lei ha il seguente codice XML (io non sono sicuro di quello che sono intestazione e le schede in modo che siano perse):
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/scroller">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:id="@+id/image"
android:src="@drawable/image001"
android:scaleType="fitXY" />
</ScrollView>
Poi l'attività potrebbe essere simile al seguente:
public class MyActivity extends Activity {
private static final String TAG = "MyActivity";
private ScrollView mScroll = null;
private ImageView mImage = null;
private ViewTreeObserver.OnGlobalLayoutListener mLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
final Rect imageRect = new Rect(0, 0, mImage.getWidth(), mImage.getHeight());
final Rect imageVisibleRect = new Rect(imageRect);
mScroll.getChildVisibleRect(mImage, imageVisibleRect, null);
if (imageVisibleRect.height() < imageRect.height() ||
imageVisibleRect.width() < imageRect.width()) {
Log.w(TAG, "image is not fully visible");
} else {
Log.w(TAG, "image is fully visible");
}
mScroll.getViewTreeObserver().removeOnGlobalLayoutListener(mLayoutListener);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Show the layout with the test view
setContentView(R.layout.main);
mScroll = (ScrollView) findViewById(R.id.scroller);
mImage = (ImageView) findViewById(R.id.image);
mScroll.getViewTreeObserver().addOnGlobalLayoutListener(mLayoutListener);
}
}
In caso di piccola immagine che registrerà: l'immagine è completamente visibile.
Tuttavia, si dovrebbe essere consapevoli di quanto segue incoerenza (come per la mia comprensione): se avete grande immagine, ma facendo scalare ad esso (ad esempio, si imposta android:layout_width="wrap_content"
) quando avrà l'aspetto in scala, ma effettiva ImageView
altezza sarà come a tutta altezza dell'immagine (e ScrollView
sarà anche a scorrimento), quindi potrebbe essere necessario adjustViewBounds. La ragione di questo comportamento è che FrameLayout
doesn't care about layout_width and layout_height of childs.
- 1. come sapere dall'adattatore se l'elemento di ListView è visibile o no?
- 2. Come sapere se un'immagine è stata caricata o no? - Paperclip
- 3. Come sapere se un oggetto è autoreleased o no?
- 4. Come sapere se un MediaRecorder è in esecuzione o no?
- 5. Come sapere se un modello è nuovo o no?
- 6. Come sapere viewpager è scorrere verso sinistra o destra?
- 7. Come verificare se un popover di bootstrap twitter è visibile o no?
- 8. Python come sapere se un record inserito correttamente o no
- 9. Come sapere se l'amministratore della mia app o no
- 10. Come determinare se una riga della tabella è visibile o no?
- 11. Come posso sapere se un controllo Delphi è attualmente visibile?
- 12. rilevare se il DIV hanno scorrere bar o no
- 13. Android: come posso sapere se la tastiera virtuale è visualizzata o no?
- 14. Come verificare se una NSWindow è visibile
- 15. Come sapere se l'oggetto raphael è nascosto?
- 16. Come si può sapere se una matrice di omografia è accettabile o no?
- 17. Come sapere se un controllo è in fase di progettazione o no?
- 18. utilizzando jquery, come posso controllare se un elemento è visibile o no?
- 19. Come determinare se uno specifico elemento DOM è visibile o no?
- 20. È possibile controllare se una notifica è visibile o cancellata?
- 21. Come faccio a sapere se sys.stdout è collegato al terminale o no?
- 22. Come sapere se la mia pagina è in esecuzione in un iframe facebook o no
- 23. Come si può sapere se un QMutex è bloccato o no?
- 24. Verificare se IIS è installato o no?
- 25. Come trovare se NSTimer è attivo o no?
- 26. Come verificare se un'istanza di NSMutableArray è nullo o no
- 27. Come controllare se l'array di byte è vuoto o no?
- 28. knockout.js cambia lo stato visibile in base a se l'array è vuoto o no
- 29. Scrollview non scorrere completamente verso il basso
- 30. Come sapere se l'utente ha fatto scorrere verso l'alto o il basso di un listview/scrollview
Prova questo: http://stackoverflow.com/a/25528434/3148266 – akshay7692