横向:更改 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();
}
希望对您有所帮助
我正在使用自定义数组适配器并在每行中显示图像和一些文本(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();
}
希望对您有所帮助