ImageView getLayoutParams() возвращает null

Я создаю виджет, программный с помощью этого простого метода

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

Я получаю исключение NullPointer, потому что getLayoutParams возвращает null. Почему это?

Ответы

Ответ 1

Поскольку ваше изображение находится в эфире, вы не поместили его на экран. Таким образом, он не имеет никаких параметров макета или любого размера.

Если вы хотите установить высоту изображения до 50, вы можете рассмотреть возможность установки layoutParams этого представления... Вы можете установить высоту layoutParams как 50. Таким образом, он будет делать то, что вы ищете.

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, 50));
 img.setLayoutParams(lp);

эти строки установят высоту вашего изображения до 50, но не забывайте, что я предполагаю, что ваш родительский вид как линейный макет, если это не так, тогда вы должны использовать его layoutparams.