Android以编程方式调整imageview

时间:2017-06-18 10:58:29

标签: android

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

img.getLayoutParams().width = 100;

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

1 个答案:

答案 0 :(得分: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(因为它还不是布局的一部分)