Faits:
A. Par jugement du 4 novembre 2009, le Tribunal correctionnel de l'arrondissement de Lausanne a condamné A._ à 18 mois de privation de liberté, sous déduction de 115 jours de détention préventive, pour violation de la loi fédérale sur les stupéfiants (LStup.). Le tribunal a suspendu l'exécution d'une partie de la peine, soit neuf mois, avec un délai d'épreuve de cinq ans.
Par arrêt du 1er mars 2010, la Cour de cassation pénale du Tribunal cantonal vaudois a réformé ce jugement, sur recours du Ministère public, en supprimant le sursis partiel accordé au condamné. A._ a recouru contre cet arrêt auprès du Tribunal fédéral. Par ordonnance du 29 mars 2010, le Président de la Cour de droit pénal, rappelant que le condamné se trouvait en détention préventive, a déclaré irrecevable la demande de mesures provisionnelles tendant à sa remise en liberté. La question ressortissait aux autorités cantonales.
Le 31 mars 2010, A._ a adressé une requête de mise en liberté au Président de la Cour de cassation cantonale. Par arrêt du 1er avril 2010, le Président a rejeté cette requête. Les charges étaient suffisantes puisque les faits retenus dans l'arrêt cantonal n'étaient pas remis en cause. La jurisprudence imposant une peine ferme dans le cas d'espèce, une mise en liberté provisoire n'entrait pas en considération. Il existait au surplus un risque de réitération et de fuite.
B. Par acte du 6 avril 2010, A._ forme un recours en matière pénale assorti d'une demande d'assistance judiciaire. Il demande sa mise en liberté avec effet au 11 avril 2010.
Le Président se réfère à son arrêt. Le Ministère public conclut au rejet du recours.
Le recourant a renoncé à répliquer.
Considérant en droit:
1. Le recours en matière pénale, au sens de l'art. 78 al. 1 LTF, est ouvert contre une décision relative au maintien en détention préventive, avant ou après jugement. Le recourant a qualité pour agir au sens de l'art. 81 al. 1 let. a LTF; il a agi en temps utile (art. 100 al. 1 LTF).
2. Une mesure de détention préventive n'est compatible avec la liberté personnelle, garantie par les art. 10 al. 2 Cst. et 5 CEDH, que si elle repose sur une base légale (ce qui n 'est pas contesté en l'espèce) et si elle correspond à un intérêt public; elle doit en outre respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.; ATF 123 I 268 consid. 2c p. 270). Pour que tel soit le cas, la privation de liberté doit être justifiée par un danger pour la sécurité ou l'ordre publics, par un risque de fuite ou par les besoins de l'instruction (cf. art. 59 ch. 1 à 3 CPP/VD). Préalablement à ces conditions, il doit exister à l'égard de l'intéressé des charges suffisantes, soit de sérieux soupçons de culpabilité (art. 5 par. 1 let. c CEDH; ATF 116 Ia 144 consid. 3; art. 59 in initio CPP/VD). S'agissant d'une restriction grave à la liberté personnelle, le Tribunal fédéral examine librement ces questions, sous réserve toutefois de l'appréciation des preuves, revue sous l'angle restreint de l'arbitraire (ATF 123 I 268 consid. 2d p. 271).
2.1 Le recourant ne conteste pas l'existence de charges suffisantes. Comme le relève l'arrêt attaqué, les faits retenus dans l'arrêt cantonal, soit un trafic de cocaïne portant sur près de 500 g de drogue pure, ne sont pas contestés en tant que tels.
2.2 Contrairement à ce que soutient le recourant, le risque de récidive n'est pas inexistant. Le jugement de première instance, tout en accordant un sursis partiel, retient néanmoins que le recourant a fait l'objet de multiples condamnations en Espagne (dix condamnations entre mai 2001 et septembre 2006 pour un total de près de cinq ans de peines privatives de liberté), et avait purgé une longue peine jusqu'à fin 2008. Malgré cela, le recourant n'avait pas hésité à entreprendre quelques mois plus tard une nouvelle activité illicite grave. Le Tribunal a aussi retenu que, compte tenu de ses antécédents et de sa situation personnelle (le recourant se trouve depuis janvier 2009 au chômage sans indemnité), le recourant était "concrètement exposé à rechuter dans la délinquance". Cela suffit pour admettre un risque de réitération.
2.3 Le risque de fuite ne peut, lui non plus, être écarté. Le recourant admet en effet qu'il a toutes ses attaches en Espagne, son pays d'origine où il déclare, dans son recours, vouloir retourner à sa libération. Le recourant ne prétend pas non plus avoir la moindre raison de demeurer en Suisse en cas de mise en liberté provisoire.
2.4 Invoquant le principe de la proportionnalité, le recourant estime que toute prolongation de sa détention au-delà du 11 avril 2009 [recte: 2010] impliquerait un risque de détention injustifiée au cas où le Tribunal fédéral admettrait son recours. L'argument tombe à faux. En effet, selon une jurisprudence constante, la possibilité d'un sursis, voire - comme en l'espèce - d'un sursis partiel, n'a pas à être prise en considération dans l'examen de la proportionnalité de la détention préventive (ATF 133 I 270 consid. 3.4.2 p. 281-282; 125 I 60). Il n'y a dès lors pas lieu non plus de s'interroger, comme l'a fait le Président de la Cour de cassation, sur le bien-fondé de l'arrêt cantonal supprimant le sursis accordé en première instance. Pour le surplus, il n'apparaît pas que la durée de la détention préventive déjà subie se rapproche de celle de la peine prononcée en première instance, et confirmée par la Cour de cassation cantonale. Le recourant ne le prétend d'ailleurs pas.
3. Le recours doit par conséquent être rejeté. Cette issue, d'emblée prévisible, implique le rejet de la demande d'assistance judiciaire. Conformément à l'art 66 al. 1 LTF, les frais judiciaires sont mis à la charge du recourant qui succombe.
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. La demande d'assistance judiciaire est rejetée.
3. Les frais judiciaires, arrêtés à 1000 fr., sont mis à la charge du recourant.
4. Le présent arrêt est communiqué aux mandataires du recourant, au Procureur général et au Président de la Cour de cassation pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 26 avril 2010
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Le Greffier:
Féraud Kurz