我有一个带有背景图像的布局。图像宽度应与屏幕宽度(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);
}
}
发布于 2013-11-08 18:07:46
使用FrameLayout作为父对象,然后添加imageview作为子对象。
发布于 2013-11-08 18:26:19
将width match_parent和height fill_parent赋给imageView,另一种方法是应用属性try,这可能是它的工作。
发布于 2013-11-08 18:37:16
您可以在运行时通过测量设备的宽度来做到这一点:--
super.onCreate(savedInstanceState);
setContentView(<layout-resoure-id);
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
int imageSize = 0;
if (width > height)
imageSize = height;
else
imageSize = width;
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.getLayoutParams().width = imageSize;
imageView.getLayoutParams().height = imageSize;
imageView.setImageResource(R.drawable.pattu);
您的xml:--
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitXY"/>
</LinearLayout>
尽情享受吧!
https://stackoverflow.com/questions/19856176
复制相似问题