2017-01-05 3 views
0

Ich möchte die Position einer Bildansicht wissen, aber es gibt immer 0 weder die x Koordinate oder y Koordinate. Hier ist mein CodeWarum gibt der Standort auf dem Bildschirm immer 0 zurück?

ImageView credits = (ImageView) v.findViewById(R.id.credits); 
    int[] coor = {0,0}; 
    credits.getLocationOnScreen(coor); 
    x = coor[0]; 
    y = coor[1]; 

ich bereits viele Verfahren verwenden wie getTop() usw., aber immer noch seine Rückkehr 0.

Wer weiß, warum? Ich bin neu bei Android, daher schätze ich jede Antwort sehr.

Antwort

0

Machen Sie das in der OnCreate-Methode?

Wenn ja, es ist zu früh für getLocationOnScreen() in onCreate zu überprüfen()

Lösung hier: https://stackoverflow.com/a/13244091/5392383

+0

Yep ich habe es. Ich habe es vorher in onCreate() eingefügt. Danke vielmals! –

0

Verwenden Sie diesen Code innerhalb onCreate() Methode?

Nach der Schnellsuche habe ich THIS POST gefunden.

kurz, es sayd onCreate() zu früh ist, getLocationOnScreen zu verwenden, sollten Sie es in der Seite verwenden die Methode onWindowFocusChanged() wenn Ihre Activity Gewinne konzentrieren.

0
credits.post(new Runnable() { 
     @Override 
     public void run() { 
      int[] coor = {0,0}; 
      credits.getLocationOnScreen(coor); 
      x = coor[0]; 
      y = coor[1]; 
     } 
    }) 

versuchen ähnliche

0

Pls versuchen diese

@Override 
    protected void onResume() { 
     super.onResume(); 
     ImageView credits = (ImageView) v.findViewById(R.id.credits); 
     int[] coor = {0,0}; 
     credits.getLocationOnScreen(coor); 
     x = coor[0]; 
     y = coor[1]; 
    } 
Verwandte Themen