2016-05-23 9 views
0

Ich benutze einen benutzerdefinierten Array-Adapter und zeige ein Bild und etwas Text innerhalb jeder Zeile (JSON von einer Film-Datenbank-API). Wenn ich die Ausrichtung des Geräts ändere, wird die Liste erneut geladen und alles wird korrekt angezeigt, obwohl ich nirgendwo im Code eine Querformatausrichtung angegeben habe. So weit, großartig!Landscape Orientation: Ändere Imageview src (mit Picasso)

Mein Problem ist, dass in der Querformat Ich möchte nur das Bild ändern, die ich (mit Picasso, da es sich um eine Bild-URL ist) bin Laden. Ich möchte, dass alles andere so bleibt wie es ist.

Wie kann ich das gleiche erreichen? Hat Picasso selbst eine Funktion, die sich um ein solches Problem kümmern könnte?

Lassen Sie mich wissen, wenn Code benötigt wird. Vielen Dank!

Antwort

0

können Sie versuchen, dieses Stück Code:

Display display = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    int rotation = display.getRotation(); 
    if (rotation != 0) { 
     Picasso.with(getApplicationContext()).load(your_url).into(your_imageview); 
    } 

Es erkennt, ob es eine Bildschirm-Rotation ist, die display.getRotation gibt einen int (das entspricht 0, wenn es keine Drehung ist), können Sie von dort aus kann Picasso verwenden, um Ihre Bildansicht zu ändern.

Cheers,

+0

Arbeitete! Vielen Dank. :) – Somya

+0

Froh, dass ich helfen könnte ... Jederzeit: D – Jay

1

sollten Sie, wenn Ausrichtung Ihres Geräts ändern erkennen
Dann sollten Sie die Liste Datenquelle basieren auf Ausrichtung aktualisieren und notifyDataSetChanged

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    // Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     // change all image path in listdata to landscape path 

     // for example 
     // for (Item item : listData) { 
     //  item.setDisplayImagePath(landscapePath); 
     // } 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     // change all image path in listdata to portrait path 
    } 

    youListViewAdapter.notifyDataSetChanged(); 
} 

Hope this Hilfe