2015-04-23 1 views
0

J'essaie de créer une règle dans une application mobile, qui évoluera correctement quel que soit le modèle d'iPhone ou d'Android. J'ai pensé que le moyen le plus simple est de créer un élément SVG avec des unités absolues. Cependant, ce n'est pas mise à l'échelle correctement sur mon navigateur ou téléphone (85% de la taille appropriée sur mon pro Macbook, 2/3 taille appropriée sur mon téléphone Android). J'ai effectué un googling étendu pour un DPI SVG par défaut, des unités absolues, la conversion de valeurs absolues, la mise à l'échelle, etc., et je n'ai rien trouvé d'utile.Unités SVG absolues incorrectes

Voici le code simplifié:

<!doctype html> 
<html> 
<head> 
    <meta charset="UTF-8"> 
    <title>Ruler</title> 
</head> 
<body> 
    <svg x="0" y="0" width="6cm" height="10cm" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
     <g fill="none" stroke="none"> 
      <line x1="0" y1="0" x2="0" y2="10cm" id="backboard" stroke="#000000" stroke-width="3" /> 
     </g> 
    </svg> 
</body> 
</html> 

Toute aide serait appréciée. Merci.

Répondre

-2

Il y a non 'défaut SVG DPI' - le DPI est une valeur de l'écran - qui n'est pas la même sur tous les appareils et en particulier parmi les appareils mobiles.

En supposant que vous connaissez le DPI de l'écran la formule pixel à mm est le suivant:

mm = (pixels * 25.4)/DPI 

En d'autres termes, à moins que vous connaissez la valeur DPI de l'écran vous ne pouvez pas avoir des mesures unitaires du monde réel.

1

Malheureusement, les unités physiques ne sont liées à aucune base du monde réel, telle que l'écran réel DPI. Ils sont en réalité basés sur le CSS DPI "standard" de 96 (soit 96 "pixels CSS"). Je pense que la spécification CSS dit que les navigateurs sont libres d'ajuster le DPI à d'autres valeurs de sorte que, par exemple, "1in" est en fait un pouce. Mais en pratique, aucun d'eux ne dérange.

Alors, malheureusement, vous devrez établir le vrai DPI de l'appareil et mettre à l'échelle vos valeurs de coordonnées de manière appropriée.