2010-08-18 5 views
3

L'incroyable écran de l'iPhone 4 nous a permis de créer des illustrations de plus haute résolution pour tirer parti du nouvel écran. Ma question est, quelle est la meilleure façon d'appliquer les images? À l'heure actuelle, il existe deux méthodes pour le faire:Est-il préférable de fournir de nouvelles illustrations ou de réduire les grandes images pour faire face à l'écran Retina?

  • Utilisation de deux images: "image.png" et "[email protected]". Le problème avec ceci est que, si votre application a besoin de beaucoup d'images, la taille de l'ensemble augmente considérablement. En outre, vous devez mettre à l'échelle les images et les enregistrer correctement, ce qui peut prendre un certain temps.

  • Mise à l'échelle des images. Vous chargez uniquement la grande image, puis l'agrandissez à 50% dans le code ou à l'aide d'Interface Builder. Cela réduit la taille du paquet et le temps de conception, mais peut ne pas être aussi bon sur les petits écrans.

Quelle méthode pensez-vous être la meilleure et pourquoi?

Répondre

5

Prenez également en compte la mémoire de l'appareil. Si vous chargez des images double-taille sur des périphériques plus anciens (3G, 3GS), ils peuvent afficher une taille réduite (si vous définissez correctement les propriétés d'échelle sur leurs vues de conteneur), mais l'image occupe toujours deux fois plus de mémoire. pour une fois chargé. À mesure que le nombre d'images avec lesquelles vous travaillez augmente, la quantité de mémoire RAM gaspillée augmente également.

Si vous chargez uniquement ce qui convient au périphérique exécutant l'application, vous constaterez des avantages en termes de performances à long terme. Edit: Je devrais noter que cela signifie que mon vote est pour l'utilisation de deux fichiers image distincts. Si ce n'était pas clair :)

+1

4 fois plus de mémoire - les images sont 2d :) – Basic

3

Cela dépend. Ne redimensionnez jamais une image basse résolution pour un affichage haute résolution, si possible.

Pour certaines choses comme les icônes, chaque pixel compte et vous avez besoin de versions haute et basse résolution.

Pour d'autres, comme les images photographiques et les arrière-plans, la mise à l'échelle inférieure est correcte - si elle est effectuée correctement.

3

Taille de la liasse! = Taille de la bille comme états de conceptions sans fil. Ne vous inquiétez pas de la taille de l'ensemble. Si vous êtes vraiment soucieux de prendre en charge des périphériques très anciens (comme les iPod touch d'origine), lancez deux versions de l'application.

Sinon, ne chargez que les images appropriées pour l'appareil en question.

+0

La taille de l'ensemble est tout. Si vous croisez 20 Mo, vous êtes condamné. – Jonny

+0

@Jonny, je suppose. Je ne pense pas qu'il charge la totalité du bundle en mémoire lorsque vous chargez votre application. Après tout, pourquoi auriez-vous besoin de charger [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource: ...] 's'il ne chargeait pas ce fichier à partir du disque. –

1

Si vous utilisez la limite 20MB, optez pour la mise à l'échelle des images en code. La taille de l'ensemble devient importante à ce moment-là. Il y aura beaucoup de téléchargements perdus si les gens ne peuvent pas installer votre application sur la 3G. En plus de la règle des 20 Mo, il est préférable d'avoir des images séparées, mais si vous ne le pouvez pas, redimensionnez les UIImages par programme en UIImages plus petits, puis placez-les dans UIImageView, mais ne placez pas un UIImage 100x100 dans un 50x50 UIImageView. Rescaling l'UIImage finit par regarder le mieux.

1

J'ai fait une application avec environ 100 images (pour chaque version de l'affichage). L'application est ultra universelle (supporte iPad, iPhone/iPod touch et l'affichage de l'iPhone 4).La taille du paquet augmente, mais ce n'est pas le problème (dans mon application, la partie principale sont les images et les sons - un son pour chaque image) et la taille est inférieure à 100 Mo. C'est beaucoup, mais vous voyez que ça ne grossit pas autant. Vous devriez toujours mettre la compatibilité en premier.

Et comme quelqu'un l'a déjà dit, la taille de votre bundle n'a aucun effet sur la mémoire utilisée par votre application. Si vous ne voulez pas utiliser 2 versions d'images, ne vous souciez pas de les mettre à l'échelle dans le code. Ils ne seront pas bons sur l'iPhone (pixélisé) ou l'affichage de l'iPhone 4 (flou). Croyez-moi, j'ai des expériences avec cela.