To override layouts in K2, you follow nearly the same process that you would in the Native Joomla content component. There is one slight difference though. It would seem that K2 .
Let's take the item view for example. Just before the JView::display method is called at the end of the K2ViewItem class the following is executed:
//Set template paths
$this->_addPath('template', JPATH_COMPONENT.DS.'templates'.DS.'default');
$this->_addPath('template', JPATH_SITE.DS.'templates'.DS.$mainframe->getTemplate().DS.'html'.DS.'com_k2'.DS.'templates'.DS.'default');
if ($params->get('theme')) {
$this->_addPath('template', JPATH_COMPONENT.DS.'templates'.DS.$params->get('theme'));
$this->_addPath('template', JPATH_SITE.DS.'templates'.DS.$mainframe->getTemplate().DS.'html'.DS.'com_k2'.DS.'templates'.DS.$params->get('theme'));
}
The '$this' part of each of these lines is referring to the an object that extends the JView class. The _addPath method puts the given path on top of an array of paths to search. What that means is that when JView::display is finially called the method will look for the define layout in the folders that have been defined in the JView::_path property, returning the first layout it finds starting at the top of the JView::_path array.
From the code above its aparent that if we have a special theme set for this content item, the JView class will look for the item.php in the :
JPATH_SITE.DS.'templates'.DS.$mainframe->getTemplate().DS.'html'.DS.'com_k2'.DS.'templates'.DS.$params->get('theme')
which kind of looks like this:
/myJoomlaRoot/templates/myCurrentDefaultTemplate/html/com_k2/templates/myK2ThemeParameter/