【问题标题】:How to Change size of ImageView Dynamically?如何动态更改 ImageView 的大小?
【发布时间】:2011-12-22 11:24:20
【问题描述】:

我正在创建一个动态表,其行包含一个 imageview 和一个 textview。我的问题是这个 imageview 正在获取原始图像的全尺寸,但我想更改 imageview 的大小。我使用了 setLayoutParams 没有效果。 作为替代方案,我还使用了 textview 而不是 imageview 并将图像设置为 textview 的背景并使用了 setWidth 和 setHeight 但它有同样的问题。 请帮助我。

【问题讨论】:

  • @Sujit 只有当我得到解决方案时我才会接受答案。到目前为止还没有......

标签: android dynamic tablelayout


【解决方案1】:

你试过scaleType-属性吗?


查看 ImageView 类的 setMaxWidthsetMaxHeight 方法:

将图像设置为最大 100 x 100,同时保留原件 纵横比,请执行以下操作:1)设置 adjustViewBounds 为真 2) 设置 maxWidth 和 maxHeight 为 100 3) 设置 高度和宽度布局参数 WRAP_CONTENT。

Link

【讨论】:

  • 尝试清除您测试的所有内容,然后使用 Android 文档提供的提示(我的报价)。如果仍然无法正常工作,您可能需要查看标准 Android Contact Book 并了解他们是如何做到的。
  • 您查看过通讯录源代码吗?你的目标是什么版本?
  • 这对我有用,我错过了我必须设置 adjustViewBounds 属性。一旦我设置好了,MaxHeight 和 MaxWidth 就起作用了。
【解决方案2】:

假设您的图像是可绘制资源,您可以改用 ScaleDrawable,并使用 xml 属性 android:scaleHeightandroid:scaleWidth 来缩小图像。

【讨论】:

  • 感谢回复。我正在动态创建imageview,但没有找到scaleHeight和scaleWidth的等效方法。
【解决方案3】:

【讨论】:

    【解决方案4】:

    尝试将布局文件中的 ImageView 的 layout_width 和 layout_height 更改为一些以 sp 测量的常量值,例如 100sp。这将使所有的 ImageView 看起来都一样。

    【讨论】:

    • 感谢您的回复。我正在动态创建 imageview 并且我没有使用任何布局文件我正在创建 ImageView 对象并使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多