Faits: A. Par ordonnance du 21 février 2007, le Juge d'instruction de l'arrondissement de La Côte a renvoyé X._ devant le Tribunal correctionnel de l'arrondissement de Lausanne comme accusé de contrainte sexuelle, viol et actes d'ordre sexuel commis sur une personne incapable de discernement ou de résistance. Le 15 mars 2007 le Juge d'instruction de l'arrondissement de Lausanne a renvoyé X._ devant le Tribunal de police du même arrondissement sous la prévention de conduite en état d'ébriété qualifiée. Par décision du 3 avril 2007, le Président du Tribunal d'arrondissement a décliné la compétence du Tribunal de police et transmis ce dernier dossier au Tribunal correctionnel, les deux causes étant jointes pour faire l'objet d'un seul jugement. B. Par jugement du 4 décembre 2007, le Tribunal correctionnel de l'arrondissement de Lausanne a libéré X._ des chefs d'accusation de contrainte sexuelle, viol, actes d'ordre sexuel commis sur une personne incapable de discernement ou de résistance, mais l'a condamné, pour conduite en état d'ébriété qualifiée, à 60 jours-amende à 120 fr./j. C. Le 24 décembre 2007, X._ a formulé une demande d'indemnité de 24'805 fr.65. Par arrêt du 29 février 2008, le Tribunal d'accusation du Tribunal cantonal vaudois a partiellement admis cette requête et alloué à X._ la somme globale de 4'304 fr., à la charge de l'Etat. En substance, la Cour cantonale a relevé que le demandeur avait droit à une indemnité, qui devait cependant être réduite, en raison du comportement « moralement condamnable » de l'intéressé. L'autorité a donc fixé à 4000 fr., TVA non comprise, l'indemnité accordée pour les frais de défense. Pour le reste, elle a rejeté la demande de réparation du tort moral, qui ne trouvait aucune justification. D. X._ dépose un recours en matière pénale et un recours constitutionnel subsidiaire au Tribunal fédéral. Il reproche essentiellement à la Cour cantonale une interprétation arbitraire des art. 67 et 163a du CPP/VD. Il voit également un déni de justice formel prohibé par l'art. 29 al. 1 Cst., en ce que le Tribunal d'accusation a réduit sa demande d'indemnité en raison de son comportement « moralement condamnable » ou « moralement blâmable ». De plus, il conteste l'estimation des frais de défense, surtout parce que la juridiction cantonale a réduit de 60 % le temps consacré par le mandataire à la procédure, sans aucune instruction et sans aucune explication. Le Ministère public et le Tribunal cantonal vaudois ont renoncé à se déterminer.