I am not too experienced, but I know that you can modify your view/layout dynamically using java code to some extent. For instance you can reassign the bitmap or drawable for an ImageView which will then essentially change the picture. You can modify a widget's (buttons, textview, imageview,etc) "visibility" so that it disappears, until you decide to make it visible again. I think you can add further widgets to a layout, even if these weren't in the static xml layout file, but easy to test. I don't know about what takes preference if you try to use a "setter" method (java code) to change a widget's property which has already been set through an underlying xml layout, but that would be easy to experiment with.