【问题标题】:How to set ImageView drawable Size based on Its parent view size?如何根据其父视图大小设置 ImageView 可绘制大小?
【发布时间】:2012-04-02 21:50:59
【问题描述】:

我在相对布局中有 imageView。当我创建活动时,我运行线程以从 Internet 获取位图并设置 imageView。

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

【问题讨论】:

  • 相对布局是全屏还是严格比例?
  • 不,viewGroup 中有一个操作栏和另一个相关布局。
  • 对,但它们与屏幕成正比吗?如果是这样,请参阅下面的答案。
  • 如果你只是在 ImageView 中设置 scaleType:fitXY 或适合你的东西 - 并将高度和宽度都设置为 fill_parent 并让 android 处理缩放。
  • 是的,但我认为 scaleType:fitXY 它不会保持纵横比。

标签: android view imageview drawable scale


【解决方案1】:

修复您的请求:]

如果您不想更改大小: 将您的 ImageView scaleType 设置为“矩阵”

如果你想改变大小但保持纵横比: 将您的 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。 fitCenter 应缩放图像以适应并保持纵横比。
  • 但在这里它也将drawable扩展到View size..有没有办法在不跨越它的情况下设置drawable?
【解决方案2】:

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

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

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

【讨论】:

  • 布局没有占据整个屏幕。有一个操作栏和另一个相对布局。
  • 我明白,比例是指高度的 4/5 和宽度的 3/5。
  • 不,还有其他使用 dp 测量的布局。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-04
相关资源
最近更新 更多