我有一个带有背景图像的布局。图像宽度应与屏幕宽度(match_parent)相同。但它很丑陋,操作系统不会在高度上拉长画面。我听说过ImageView scaleType,所以我在ImageView中有背景图像,而不是布局背景,但我不能配置为我想要的。
如何设置为layout或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);
}
}
https://stackoverflow.com/questions/19856176
复制相似问题