如何根据其父视图大小设置ImageView drawable Size?

时间:2012-04-02 21:51:00

标签: android view imageview drawable scale

我在相对布局中有imageView。当我创建活动时,我运行线程从互联网上抓取位图并设置imageView。

我想要的是调整位图的大小以根据相对视图大小进行缩放,同时保持宽高比。调整图像大小的代码正在运行,但我所做的是通过调用myRelativeView.getWidth()&来获得相对视图大小。 myRelativeView.getHeight()我认为我不应该这样做,因为文档说它可以返回0.那么在这种情况下检索相对视图大小的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

根据您的要求FIX:]

如果您不想更改尺寸 将ImageView scaleType设置为“matrix”

如果你想改变大小但保持宽高比 将ImageView scaleType设置为“fitCenter”(或fitStart fitEnd)

更改代码

ImageView image;

image = (ImageView)findViewById(R.id.yourImageView1);

image.setScaleType(ImageView.ScaleType.FIT_CENTER);

更改XML 实施例

<ImageView
    android:layout_width="match_parent"
    android:layout_width="match_parent"
    android:scaleType="fitCenter"
    android:src="ic_launcher"/>

答案 1 :(得分:0)

如果布局与整个屏幕成比例,您可以尝试:

Display display = getWindowManager().getDefaultDisplay();
        width = display.getWidth()

// *比例;或-dp;             height = display.getHeight() // * proportion2;或-dp;