ImageView getLayoutParams()返回null

Jac*_*ień 22 android android-imageview

我正在用这个简单的方法创建一个程序小部件

private ImageView getModuleIconView(Module module) {
    ImageView view = new ImageView(context);
    view.setImageResource(module.getIconResId());        
    view.getLayoutParams().height = 50; //NullPointerException
    return view;
}
Run Code Online (Sandbox Code Playgroud)

我得到NullPointer异常,因为getLayoutParams返回null.这是为什么?

yah*_*hya 51

因为您的图像视图正在播出,所以您没有将它放在屏幕上.所以它没有任何布局参数或任何大小.

如果你想将图像的高度设置为50,你可以考虑设置这个视图的layoutParams ...你可以将layoutParams的高度设置为50.所以它会做你想要的.

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 50));
 img.setLayoutParams(lp);
Run Code Online (Sandbox Code Playgroud)

这些行将你的图像高度设置为50,但不要忘记我假设你的父视图是线性布局,如果不是,那么你应该使用它的layoutparams.

  • 我有点困惑.`LayoutParams`的构造函数接受另一个你刚刚在现场创建的`LayoutParams`对象?在这种情况下,你只能创建一个对象吗? (3认同)