Hello,
To add a field you will need to invoke code like this (should be placed in install() method of your module):
Utils_RecordBrowserCommon::new_record_field('company', array('name'=>'Switch', 'type'=>'integer','required'=>false, 'extra'=>false, 'filter'=>false, 'visible'=>true, 'position'=>3, 'display_callback'=>array('YourModuleCommon', 'display_switch'),'QFfield_callback'=>array('YourModuleCommon', 'QFfield_switch')));
The display callback should be displaying the image based on value supplied. Remember to add id to the img tag or surround it with <span> with set id (each record needs its own tag id here, best use record_id for that, adding some constant string to it, like 'switch_button_'.$r['id']). On click, you need to invode new Ajax request. A good and simple example can be found in modules/Base/Box, check_for_new_version.js, both the js and php it references to are important.
You can see some code using images display in CRM/Task, the display_employees() method (in Common part of the module).
The QFfield should skip on $mode=='add', in all other cases, a static element should be added, filled with what display_switch returns for such id. I suggest to base it on QFfield_webaddress() method from CRM/Contacts (in Common part of the module).
Kind regards,
Arek