2011-04-07 3 views
1

Je veux faire un texte de dégradé avec de la toile et mon pc rend le code correct, mais Android l'affiche comme un dégradé normal avec le texte à l'intérieur de celui-ci. Comment puis-je résoudre ce problème, si c'est possible?
Voici le javascript:HTML5 toile dans le problème Android

function text() { 
var canvas = document.getElementById('header-text'); 
var ctx = canvas.getContext('2d'); 
var gradient = ctx.createLinearGradient(0, 0, 0, 29); 
gradient.addColorStop(0, "#fcfcfc"); 
gradient.addColorStop(1, "#ccc"); 
ctx.font = "bold 29px helvetica, arial, sans-serif"; 
ctx.shadowColor = "#232323"; 
ctx.shadowOffsetX = 2; 
ctx.shadowOffsetY = 2; 
ctx.shadowBlur = 2; 
ctx.fillStyle = gradient; 
ctx.fillText("Company name", 0, 23); 
} 
+0

Pouvez-vous ajouter le code en question? Il existe plusieurs façons de créer un dégradé sur du texte. –

Répondre

1

Désolé de le dire, il y a un bug.

Ou plutôt, le dégradé pour fillText n'est pas encore implémenté sur le navigateur android. Si vous écrivez ceci:

var gradient = ctx.createLinearGradient(0, 0, 0, 29); 
gradient.addColorStop(0, "#fcfcfc"); 
gradient.addColorStop(1, "#ccc"); 
ctx.fillStyle = 'red'; 
ctx.fillStyle = gradient; // replace the fillstyle with a gradient 
ctx.fillText("Testing", 0, 23); 
ctx.fillRect(0,0,20,20) 

Vous verrez que le texte et le rectangle ont la pente dans Chrome.

See it live here.

Mais sur l'appareil Android, le texte sera rouge et le rect sera un dégradé!

Chrome lui-même n'a toujours pas un support complet pour tous les cas de dégradé de toile qui ont été mis en page par l'auteur de la spécification (lui-même un employé de Google). J'ai soumis un rapport de bug à ce sujet here.

+0

juste pour ajouter le dégradé ne semble pas fonctionner pour 'arc' aussi bien. – SuperVeetz