【问题标题】:Android resize imageview programmaticallyAndroid以编程方式调整imageview的大小
【发布时间】:2017-06-18 10:58:28
【问题描述】:

是否可以在代码中调整图像视图的大小?我试过了:

img.getLayoutParams().width = 100;

但如果我这样做,应用程序会崩溃。

【问题讨论】:

  • Set ImageView width and height programmatically? 的可能重复项。请在此处添加您的堆栈跟踪。如果您在布局已经“布局”后设置宽度,请确保您还添加了img.requestLayout()。
  • Stacktrace: textuploader.com/d0gvw img.requestLayout();不工作....
  • 您的img 为空。如果您在xml 中定义了img,请在其中显示它。并展示您如何查看它。

标签: android


【解决方案1】:

您的应用可能会崩溃,因为您的 ImageView 可能不是动态生成的(您的堆栈跟踪链接是 404,所以我无法验证)。

无论如何,要让系统重绘您的 ImageView,您必须调用 img.requestLayout()。但是,调用requestLayout()is not guaranteed to result in an onDraw 与文档相反,因此在实践中invalidate() 在requestLayout() 之后也被调用

试试这个:

img.getLayoutParams().width = 100;
img.requestLayout();
img.invalidate();

编辑:

堆栈跟踪现在可用。当您尝试设置 ImageView 的宽度时,您似乎收到了 NullPointerException。你确定你的 ImageView 已经被声明了吗?如果它已被声明,那么您是否将其添加到您的布局中?未添加到布局中的 ImageView 在尝试访问其 LayoutParams 时将返回 null(因为它还不是布局的一部分)

【讨论】:

  • 抱歉 404,您的方法不起作用。这是一个有效的页面:hastebin.com/ayakumuwiz.sql
  • 谢谢!它是固定的
  • 对不起,我是新人。我该怎么做?
  • @NilsPMC 我的答案旁边有一个勾号。如果单击它,刻度线将变为绿色,并且答案被标记为正确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
相关资源
最近更新 更多