ImageView getLayoutParams() возвращает null - программирование
Подтвердить что ты не робот

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. Почему это?

4b9b3361

Ответ 1

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

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

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

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