2010-06-07 15 views
27

Según Apple, el iPhone 4 tiene una nueva y mejor resolución de pantalla:¿Cómo acomodar la resolución de la pantalla del iPhone 4?

resolución
pantalla

de 3,5 pulgadas (en diagonal) pantalla ancha Multi-Touch
de 960 x 640 píxeles a 326 ppp

Este pequeño detalle afecta a nuestras aplicaciones de una manera pesada. La mayoría de las aplicaciones de demostración en la red tienen una cosa en común: posicionan las vistas al creer que la pantalla tiene un tamaño fijo de 320 x 480 píxeles. Entonces, lo que hacen la mayoría de los desarrolladores (si no todos) es que diseñaron todo de tal manera que un área táctil es (por ejemplo) 50 x 50 píxeles grande. Solo lo suficiente para tocarlo. Las cosas se han colocado en relación con la esquina superior izquierda, para llegar a una posición específica en la pantalla, digamos el centro, o en algún lugar en la parte inferior.

Cuando desarrollamos aplicaciones de alta resolución, es probable que no funcionen en dispositivos más antiguos. Y si lo hacen, sufrirían mucho de 4 veces el tamaño de cualquier imagen, teniendo que escalarlas en la memoria.

+0

Aunque no estoy de acuerdo con el cierre por ser subjetivo, no hay una forma de responder realmente a esto hasta que se lanzan los nuevos teléfonos y la gente puede jugar con ellos. – NotMe

+1

Eso es una tontería, la consecuencia de esto es bastante lógica. Puede simular eso fácilmente transformando su vista principal a la mitad de tamaño y altura mientras le da el doble de tamaño y altura. Lo hice, y apesta. – dontWatchMyProfile

+0

¿Por qué todas las buenas preguntas terminan como wiki de la comunidad? – Emil

Respuesta

15

Según Supporting High-Resolution Screens In Views, a partir de la documentación de Apple:

En los dispositivos con pantallas de alta resolución, la imageNamed:, imageWithContentsOfFile: y initWithContentsOfFile: métodos busca automáticamente una versión de la imagen solicitada con el @2x modificador en su nombre. Si encuentra uno, carga esa imagen en su lugar. Si lo hace no proporciona una versión de alta resolución de una imagen determinada, el objeto de imagen aún carga una imagen de resolución estándar (si existe) y la escala durante el dibujo.

Cuando carga una imagen, un objeto UIImage establece automáticamente las propiedades de escala de tamaño y en los valores apropiados según el sufijo del archivo de imagen. Para imágenes de resolución estándar, establece la propiedad de escala en 1.0 y establece el tamaño de la imagen en las dimensiones de píxeles de la imagen . Para imágenes con el sufijo @ 2x en el nombre de archivo, establece la propiedad de escala en 2.0 y reduce a la mitad los valores de ancho y alto a para compensar el factor de escala. Estos valores a la mitad se correlacionan correctamente con las dimensiones basadas en puntos que necesita para usar en el espacio de coordenadas lógicas para representar la imagen.

+0

Tenga en cuenta que las vistas de UIKit se dibujan en la escala correcta sin importar la resolución, de facto. Las imágenes personalizadas son motivo de preocupación, como se menciona anteriormente. (Por eso no debe usarlos para dibujar su interfaz cuando pueda). – JoePasq

+3

@mystify, mi comprensión '@ 2x' es parte del nombre. Cita del mismo pdf, "Por ejemplo, si tiene dos archivos de imagen, llamados' Button.png' y 'Button @ 2x.png', usaría el siguiente código para solicitar su imagen de botón: ' UIImage * anImage = [UIImage imageNamed: @ "Botón"]; '" – ohho

+0

¿Qué pasa con iOS3.0? ¿Qué puedes hacer allí para mostrar imágenes de alta resolución en el iPhone 4? Seguro que quiero que mis aplicaciones se vean geniales, pero también quiero que las personas con 3.x puedan usarlo ... – Emil

5

Engadget's reporting of the keynote incluyó la siguiente transcripción de Steve Jobs

... Hace que sea por lo que sus aplicaciones ejecutar automáticamente en esto, pero hace su texto y controles de la más alta resolución. Sus aplicaciones se ven incluso mejor, pero si usted hace un poco de trabajo , se verán deslumbrantes. Así que sugerimos que lo haga

Por lo tanto, deduzco que si utiliza las API existentes, su aplicación se ampliará. Si aprovecha las nuevas API de iOS4, puede obtener todo lo maravilloso con los nuevos píxeles.

+0

suena bien. Así que parecen tener algún tipo de cambio de alto en info.plist ... – dontWatchMyProfile

2

Sí, es cierto.

De acuerdo con WWDC, parece que apple ha creado alguna forma de conversión automática para que la resolución de las aplicaciones no se desactive por completo. Think up-convert para dvd a HDTV.

Supongo que Apple sabe lo que la mayoría de los desarrolladores de estándares han estado usando y ya los usará para una conversión inmediata. Por supuesto, si está programando una aplicación para aprovechar la nueva resolución, se verá mucho mejor que cualquiera que sea el resultado de la auto conversión de manzanas.

+3

, pero teniendo en cuenta que al proporcionar todos los gráficos con 4 veces el tamaño (que es cuando duplican la altura y el ancho), todos los dispositivos antiguos sufrirán mucho, cargando archivos gigantes y escalando hacia abajo. – dontWatchMyProfile

+0

quizás, no sabemos si Apple hará distinciones entre las aplicaciones de iphone 4 y las aplicaciones heredadas de iPhone de la misma manera que lo hacen entre las aplicaciones de iPhone y ipad. Es posible si algo está diseñado explícitamente para el iPhone 4 que no estarán disponibles para las versiones anteriores. –

+0

que tendría sentido. Las versiones anteriores no pueden lidiar con eso, y sería estúpido dañar esos dispositivos débiles y antiguos con gráficos de alta resolución que deben reducirse. – dontWatchMyProfile

6

Esto es pura especulación, pero si la resolución es realmente 960 x 640, es exactamente el doble de alta que la versión actual. Sería trivialmente simple para el iPhone verificar el objetivo de compilación de aplicaciones y detectar una versión heredada de la aplicación y simplemente escalarla en 2. Nunca notarías la diferencia.

+2

+1 para "Nunca notarás la diferencia". – Emil

4

Parece que la pantalla estará bien pero me preocupa la lógica de mi juego. ¿Tocará las posiciones Bean puntos de retorno en la nueva resolución? Los límites de la pantalla serán diferentes, este tipo de cosas podría ser un problema para mí.

+0

No. Eso se hace con CoreGraphics (creo), que es independiente de la resolución. –

+0

Sin arriesgar CUALQUIER problema NDA, todos los iPhones siempre han devuelto puntos, no píxeles. Como los puntos se usan en SDK 3.2 para iPad, no esperaría que esto cambie para las versiones de iPhone en el futuro. – Jann

3

Escalar a una resolución doble con fines de visualización es sencillo, pero ¿se aplicará esta corrección a todas las API que ingresan o salen de una coordenada de pantalla? Si no, las cosas se van a romper ¿no?

Bastante bien si se ha manejado extensamente en todo el marco ... Me imagino que hay muchos api potenciales de este efecto.

+0

Supongo que el punto donde se realizan los cálculos es demasiado bajo, que cualquier API está encima de eso. Para que puedan leer fácilmente un valor de info.plist para ver si la aplicación es de alta resolución o no, y luego manejar la interacción del usuario con la pantalla táctil o cualquier operación de dibujo de la manera adecuada. Bueno, al menos eso es lo que habría hecho cuando era el jefe del equipo de iPhone SDK ;-) ... Según Jobs, eso no va a romper nuestras aplicaciones. Los compradores de iPhone 4 lo odiarían mucho si de repente, como el 95% de todas las aplicaciones, no funcionan en su nuevo y super costoso dispositivo. – dontWatchMyProfile

+0

Eso es bueno si el pensamiento avanzado estaba en el diseño. Sin embargo, no me sorprendería si esto se pasa por alto. Supongo que espero encontrar alguna confirmación de si esto es cierto de alguien con el SDK que puede probarlo. –

+0

Me temo que la mayoría de nosotros, fuera de los EE. UU., Tendremos que esperar mucho tiempo hasta que podamos verlo. A menos que el nuevo simulador de iPhone pueda mostrar esa nueva respuesta. – dontWatchMyProfile

2

Todas sus etiquetas y botones del sistema estarán a 326 ppp pero sus imágenes seguirán duplicándose en píxeles hasta que agregue los recursos de alta resolución. Actualmente estoy actualizando mis aplicaciones. Si compila y ejecuta en el iPhone 4 sim entonces se presenta al 50%, vaya a Ventana> Escala> 100% para ver la diferencia real! Las etiquetas son suaves, ¡mis imágenes se ven impactantes!

Cuestiones relacionadas