Faits:
A. Par un jugement du 16 septembre 2008, le Juge de police de l'arrondissement de la Sarine a, notamment, condamné X._, pour lésions corporelles simples, à 90 jours de privation de liberté et statué sur les conclusions en dommages-intérêts de la partie civile A._.
Contre ce jugement, X._ a exercé un recours que la Cour d'appel pénal du Tribunal cantonal de l'État de Fribourg a rejeté, dans la mesure où il était recevable, par un arrêt du 16 décembre 2008.
B. X._ recourt au Tribunal fédéral contre cet dernier arrêt.
Considérant en droit:
1. Le recourant fait valoir que le juge de première instance lui a présenté aux débats des photographies de blessures dont il n'avait pas eu connaissance auparavant. Il soutient que c'est à tort que la cour cantonale n'a pas censuré ce procédé.
L'administration des preuves est régie par le droit cantonal de procédure, sous réserve des minima garantis par le droit constitutionnel d'être entendu (art. 29 al. 2 Cst.) et le droit à un procès équitable (art. 29 al. 1 Cst. et 6 § 1 et 3 CEDH). Le Tribunal fédéral ne peut dès lors en contrôler la régularité que dans le cadre d'un moyen pris de la violation d'un droit constitutionnel (cf. art. 95 et 96 LTF, a contrario), expressément soulevé et développé avec la précision requise à l'art. 106 al. 2 LTF.
En l'espèce, le recourant ne se plaint pas d'application arbitraire (art. 9 Cst.) d'une règle de procédure cantonale précisément désignée, ni d'une violation reconnaissable de l'un ou l'autre de ses droits constitutionnels ou conventionnels. Il se borne à alléguer que le procédé consistant à lui montrer pour la première fois des photographies aux débats serait anormal, sans indiquer en quoi, concrètement, il aurait été gêné dans sa défense. Son moyen ne répond dès lors pas aux exigences de motivation de l'art. 106 al. 2 LTF. Partant, il est irrecevable.
2. Le recourant allègue aussi que le premier juge l'aurait réprimandé d'un ton sec et méprisant à chaque fois qu'il voulait réfuter les accusations portées contre lui. Il se plaint ainsi d'une violation de son droit à un juge impartial (art. 30 al. 1 Cst.).
2.1 La cour cantonale, qui a - quoi qu'elle en dise - examiné ce moyen au fond, l'a rejeté, aux motifs que le premier juge avait fondé sa conviction sur les déclarations de la partie civile, sur les dépositions de deux témoins, sur un constat médical et sur le résultat d'une confrontation organisée par le juge d'instruction.
2.2 Le recourant oppose à ces motifs qu'il serait la victime d'une machination ourdie par la justice fribourgeoise. Il en veut pour preuve que le juge d'instruction ne lui avait pas parlé des photographies versées au dossier, que le juge de police l'a expulsé de la salle des débats et que la cour cantonale n'aurait pas répondu à tous ses arguments.
2.2.1 Contrairement à ce semble croire le recourant, le juge d'instruction n'a jamais eu les photographies litigieuses en mains. C'est le juge de police qui a ordonné leur apport (cf. dossier cantonal, p. 94). Cette opération, utile à la manifestation de la vérité, ne dénote aucun parti pris.
2.2.2 Pour une raison non mentionnée au procès-verbal des débats, le juge de police a "demandé" au recourant de sortir un instant de la salle d'audience. Il a ensuite interrogé la co-accusée du recourant sur sa situation personnelle à elle, puis il a fait réintroduire le recourant, pour l'interroger sur sa propre situation personnelle (cf. dossier cantonal, p. 115). Sans indication de motifs au procès-verbal, l'expulsion du recourant de la salle d'audience peut paraître discutable au regard du principe de contradiction. Mais elle ne suffit pas en soi à créer une apparence de prévention. Pour le surplus, il n'est pas établi que le juge de police se soit adressé au recourant dans des termes ou d'une manière qui justifieraient une suspicion de partialité.
2.2.3 Enfin, il n'apparaît pas que la cour cantonale ait insuffisamment motivé l'arrêt attaqué. Elle n'avait pas à traiter en long et en large de tous les arguments développés par le recourant, mais seulement à énoncer pour quelles raisons elle rejetait le recours. Elle ne s'est donc pas rendue suspecte de partialité en s'en tenant aux motifs essentiels de sa décision. Le moyen pris d'une violation du droit à un juge impartial n'a ainsi aucune espèce de fondement.
Dans la mesure où il est recevable, le recours doit dès lors être rejeté en application de l'art. 109 al. 2 let. a LTF.
3. Le recourant, qui succombe, supportera les frais de justice (art. 64 al. 1 LTF), réduits à 800 fr. pour tenir compte de sa situation financière.
Il n'y a pas lieu d'allouer des dépens à l'intimé, qui n'a pas eu à déposer de réponse.
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
3. Le présent arrêt est communiqué aux parties et au Tribunal cantonal de l'État de Fribourg, Cour d'appel pénal.
Lausanne, le 9 mars 2009
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président: Le Greffier:
Favre Oulevey