нельзя изменить стиль созданного и прикрепленного View
. стиль может быть установлен только в конструкторе, поэтому, если вы используете объявление XML, тогда стиль уже применяется там (по атрибуту style
, без префикса android:
)
вы можете удалить текущий View
и добавьте новый в том же месте с новым стилем, примененным конструктором
new ImageView(context, null, R.style.mainicon);
или используя ContextThemeWrapper
new ImageView(new ContextThemeWrapper(context, R.style.mainicon));
в качестве опции, которую вы также можете определить в XML два ImageView
s с разными стилями и переключением их Visibility
. это не лучшее решение для производительности, так как вы будете хранить в памяти дополнительные, неиспользуемые View
, но с Visiblity.GONE
они не будут отображаться, поэтому не займет много памяти, и может быть проще переключить видимость вместо удаления / добавления нового View
s