我有一个带有背景图像的布局。图像宽度应与屏幕宽度(match_parent)相同。但这很丑陋,操作系统不会拉伸图片的高度。我听说过 ImageView scaleType,所以我在 ImageView 中有背景图像而不是布局背景,但我无法配置为我想要的。
如何设置布局或 ImageView 以缩放图像(宽度)以适应屏幕的宽度并以相同的比例缩放高度?
我想要图片中的第二个屏幕:
更新:
我正在尝试使用代码,但我得到 0 宽度 + 我不敢相信这不能从带有 ImageView 的 xml 中完成。
Drawable imageDrawable = getResources().getDrawable(imageResource);
contentContainer.setBackgroundDrawable(imageDrawable);
Rect rect = imageDrawable.getBounds();
int originalWidth = rect.width();
int originalHeight = rect.height();
Display display = getActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = originalHeight * (width/originalWidth);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, height);
contentContainer.setLayoutParams(layoutParams);
contentContainer.post(new Runnable() {
@Override
public void run() {
contentContainer.setScaleY(contentContainer.getScaleX());
Rect rect = contentContainer.getBackground().getBounds();
int originalWidth = rect.width();
int originalHeight = rect.height();
Display display = getActivity().getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = originalHeight * (width/originalWidth);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, height);
contentContainer.setLayoutParams(layoutParams);
}
}