横向:更改 imageview src(使用 Picasso)

Landscape Orientation: Change imageview src (using Picasso)

我正在使用自定义数组适配器并在每行中显示图像和一些文本(JSON 来自电影数据库 API)。当我改变设备的方向时,列表会再次加载并且所有内容都会正确显示,即使我没有在代码中的任何地方指定横向方向。到目前为止,太棒了!

我的问题是,在横向中,我想只更改我正在加载的图像(使用 Picasso,因为它是一张图片 URL)。我希望其他一切保持原样。

我怎样才能达到同样的效果?毕加索本身是否有可以解决此类问题的功能?

如果需要一些代码,请告诉我。谢谢!

你可以试试这段代码:

    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);
    }

它检测是否有屏幕旋转,display.getRotation returns 一个 int(如果没有任何旋转则等于 0),从那里您可以使用 Picasso 更改图像视图。

干杯,

您应该检测设备何时改变方向
然后你应该根据方向和 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(); 
}

希望对您有所帮助