gpt4 book ai didi

android - picasso 在纵向和横向模式下加载不同的图像

转载 作者:行者123 更新时间:2023-11-29 01:21:56 25 4
gpt4 key购买 nike

我有一个使用 Picasso 下载图像并将其显示在 ImageView 中的 fragment 。问题是图像处于纵向模式,如果手机更改为横向模式,则同一图像会被拉伸(stretch)。我寻找解决方案,但我得到的一般意义是简单地将 旋转到 90 度。但这不是我想要的。我想加载两个不同的图像,即一个图像 url 将用于纵向模式,另一个将用于横向模式。我尝试检测方向变化,然后相应地加载图像。这没有用。同样在横向模式下,纵向图像正在加载。有什么建议吗?

public class FragmentOne extends Fragment{

Button next, previous;
ProportionalImageView imageView;


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragmentone, container, false);

}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
next = (Button)view.findViewById(R.id.next);
previous = (Button)view.findViewById(R.id.previous);
imageView = (ProportionalImageView)view.findViewById(R.id.image);

Picasso.with(getActivity())
.load("http://i.imgur.com/h5iwVmh.jpg")
.placeholder(R.drawable.placeholder)
.into(imageView);



next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((ViewPager) ((MainActivity)getActivity()).findViewById(R.id.pager)).setCurrentItem(1);
}
});

previous.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((ViewPager) ((MainActivity)getActivity()).findViewById(R.id.pager)).setCurrentItem(-1);
}
});

}

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

// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Picasso.with(getActivity())
.load("http://i.imgur.com/H0IXUy0.jpg")
.placeholder(R.drawable.placeholder)
.into(imageView);

} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Picasso.with(getActivity())
.load("http://i.imgur.com/h5iwVmh.jpg")
.placeholder(R.drawable.placeholder)
.into(imageView);


}
}








}

最佳答案

您可以使用此代码获取方向

Display display = ((WindowManager)    context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();

并根据旋转条件加载图像。 exm :- if(rotation== your condition) { }

您还可以使用以下代码:

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

// refresh the instructions image
ImageView instructions = (ImageView) findViewById(R.id.img_instructions);

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//load image in picasso here
} else {
//load image in picasso here
}
}

关于android - picasso 在纵向和横向模式下加载不同的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com