Altmann begann seine Karriere in den Nachwuchsmannschaften des Wiener Eislöwen-Vereins und kam in der Saison 2003/04 erstmals in dessen Kampfmannschaft in der Nationalliga zum Einsatz. Ein Jahr später wechselte er zu den Vienna Capitals und spielte dort parallel in der österreichischen U20-Liga und der Österreichischen Eishockey-Liga. Bereits in seiner ersten Saison bei den Capitals gewann er mit dem Club den österreichischen Meistertitel. In den folgenden Jahren entwickelte er sich zu einem der fixen Bestandteile des Teams, wollte sich jedoch auch im Ausland versuchen. Ein Wechsel in die schwedische zweite Liga, die HockeyAllsvenskan, zu Örebro HK verlief jedoch wenig erfolgreich, und er beendete die Saison in der Division I beim Karlskrona IK. Im Sommer 2010 holte ihn der ÖEHL-Club EC VSV zurück nach Österreich, wo er zu einem Leistungsträger avancierte und in der Saison 2012/13 mit 45 Scorerpunkten der offensivstärkste Verteidiger der Liga wurde.
In den folgenden zwei Spielzeiten ließ seine Punktausbeute nach, so dass er sich nach der Saison 2014/15 für einen Wechsel zum EHC Linz entschloss. 2020 wechselte er zum Ligakonkurrenten Graz 99ers.
Im April 2023 wechselte Altmann zum EK Zell am See, welcher in der zweitklassigen Alps Hockey League aktiv ist. 2025 gewann er mit den Eisbären die Alps Hockey League. Daraufhin beendete Altmann seine aktive Karriere.[1]
Altmann nahm zweimal an Jugend-Weltmeisterschaften teil und spielte bei der WM 2009 erstmals in der Nationalmannschaft der Herren, musste jedoch mit dem Team den Abstieg in die Division I hinnehmen. Auch 2011, 2013, 2015 und 2018 spielte er in der Top-Division, während er mit der Mannschaft aus dem Alpenland 2012 und 2014 in der Division I antrat. Zudem spielte er bei den Olympiaqualifikationen für die Winterspiele 2010, 2014 und 2018 sowie den Spielen 2014 in Sotschi selbst für sein Heimatland.
(Legende zur Spielerstatistik: Sp oder GP= absolvierte Spiele; T oder G= erzielte Tore; V oder A= erzielte Assists; Pkt oder Pts= erzielte Scorerpunkte; SM oder PIM= erhaltene Strafminuten; +/−= Plus/Minus-Bilanz; PP= erzielte Überzahltore; SH= erzielte Unterzahltore; GW= erzielte Siegtore; 1Play-downs/Relegation; Kursiv: Statistik nicht vollständig)