Độ phân giải hình ảnh cho iPhone 6 và 6+ mới, hỗ trợ @ 3x được thêm vào?


141

Tôi đã xem xét một vài bài báo và thảo luận như ở đâyđây về độ phân giải hình ảnh mà iPhone mới sẽ sử dụng hình ảnh @ 3x để hiển thị. Có đúng không

Vì vậy, nó có nghĩa là chúng ta sẽ phải giữ ba hình ảnh? Ví dụ: tôi có một hình ảnh 50 X 50, tôi sẽ phải giữ 3 hình ảnh để tối ưu hóa giao diện cho iPhone mới chứ?

  • Bình thường (50 X 50)
  • @ 2x - Võng mạc (100 X 100)
  • @ 3x - Võng mạc HD (150 X 150)

Hoặc các điện thoại mới sẽ chỉ sử dụng hình ảnh @ 2x và không có gì giống như @ 3x?

Tôi đã thử nghiệm bằng cách thực hiện một dự án mẫu và tất cả các trình giả lập dường như sử dụng hình ảnh @ 3x, điều này thật khó hiểu.

Biên tập

Dưới đây là một số thông tin nhiều hơn nữa

  • 3GS (163 ppi nên sử dụng Bình thường)
  • 4, 4s, 5 và 5s (326 ppi vì vậy chúng tôi sử dụng @ 2x)
  • 6 (326 ppi nên có vẻ như nó sẽ sử dụng @ 2x)
  • 6 cộng (401 ppi ở đây là sự nhầm lẫn)

Biên tập

Dựa trên Câu trả lời được đưa ra bởi Tsob và nitin, tôi đã thêm hình ảnh @ 3x vào dự án của mình.

Chỉnh sửa thông tin

Tôi thấy ít người dùng bối rối về lý do tại sao iPhone 6 sử dụng hình ảnh @ 2x mặc dù nó có độ phân giải cao hơn, lý do là

iPhone 6 có thể có độ phân giải khác nhau nhưng có cùng mật độ cho mỗi pixel pixel (PPI)

  • Độ phân giải liên quan đến số lượng pixel tuyệt đối.
  • Mật độ (còn gọi là Pixels trên mỗi inch - PPI) liên quan đến số lượng pixel trên mỗi inch tương đối giống với iPhone 6 và iPhone trước đó, nhưng khác với iPhone 6 plus.

Kiểm tra thêm về điều này ở đây trong chủ đề này

Do đó, iPhone 6 sử dụng hình ảnh @ 2x giống như iPhone 4, 5 và 5S vì nó có cùng PPI và iPhone 6 plus sử dụng @ 3x.


Vậy thì việc sử dụng Retina 4 2x là gì, nếu không có thiết bị nào sử dụng nó?
Mrunal

1
Tôi đồng ý rằng mật độ là như nhau cho iPhone 4, 5 và 6 nhưng làm thế nào để giải quyết vấn đề giải quyết khác nhau? Vì vậy, sự khác biệt lớn 640x960 và 750 × 1334 pixel. Nếu tôi cần sử dụng hình nền bao phủ toàn màn hình. Làm cách nào tôi có thể đặt xcassets hình ảnh trong trường hợp này?
Matrosov Alexander

@MatrosovAlexander bạn đã giải quyết nó như thế nào?
Mário Carvalho

như cách giải quyết Tôi cũng đã sử dụng hình ảnh iphone 6 cho hình ảnh @ 2x nhưng thật đáng tiếc là xcode không có hình ảnh phù hợp cho nó
Matrosov Alexander

Câu trả lời:


54

Tôi đã thử trong một dự án mẫu để sử dụng hình ảnh tiêu chuẩn, @ 2x và @ 3x và trình giả lập iPhone 6+ sử dụng hình ảnh @ 3x. Vì vậy, dường như có những hình ảnh @ 3x được thực hiện (nếu trình giả lập thực sự sao chép hành vi của thiết bị). Nhưng điều kỳ lạ là tất cả các thiết bị (giả lập) dường như sử dụng hình ảnh @ 3x này khi nó nằm trong cấu trúc dự án, iPhone 4S / iPhone 5 cũng vậy.
Việc thiếu giao tiếp từ Apple trên cấu trúc @ 3x tiềm năng, trong khi họ yêu cầu các nhà phát triển xuất bản ứng dụng iOS8 của họ khá khó hiểu, đặc biệt là khi nhìn thấy những kết quả đó trên trình giả lập.

** Chỉnh sửa từ Trang web của Apple **: Cũng tìm thấy phần này trong phần "Có gì mới trên iOS 8" trên không gian nhà phát triển của Apple:

Hỗ trợ cho tỷ lệ màn hình mới iPhone 6 Plus sử dụng màn hình Retina HD mới với tỷ lệ màn hình 3.0. Để cung cấp trải nghiệm tốt nhất có thể trên các thiết bị này, bao gồm tác phẩm nghệ thuật mới được thiết kế cho tỷ lệ màn hình này. Trong Xcode 6, danh mục tài sản có thể bao gồm hình ảnh ở các kích thước 1x, 2x và 3x; chỉ cần thêm tài sản hình ảnh mới và iOS sẽ chọn đúng tài sản khi chạy trên iPhone 6 Plus. Hành vi tải hình ảnh trong iOS cũng nhận ra hậu tố @ 3x.

Vẫn không hiểu tại sao tất cả các thiết bị dường như tải @ 3x. Có lẽ vì tôi đang sử dụng các tệp thông thường chứ không phải xcassets? Sẽ cố gắng sớm thôi.

Chỉnh sửa sau khi thử nghiệm thêm: Ok có vẻ như iOS8 có một cuộc nói chuyện trong này. Khi thử nghiệm trên trình giả lập iPhone 5 iOS 7.1, nó sử dụng chính xác hình ảnh @ 2x. Nhưng khi khởi chạy tương tự trên iOS 8, nó sử dụng @ 3x trên iPhone 5. Không chắc đó là hành vi mong muốn hay lỗi / lỗi trong iOS8 GM hoặc giả lập trong Xcode 6.


2
Có, tôi đã thử nghiệm với trình giả lập, tất cả các thiết bị đều chụp ảnh @ 3x, thực sự khó hiểu
Bhumit Mehta

Vì vậy, kết luận, cho đến ngày hôm nay , con đường tốt nhất có thể sẽ là sử dụng "@ 2x" trong tên hình ảnh nhưng bằng cách nào đó kiểm tra thiết bị cho 6 Plus và sử dụng hình ảnh 3x KHÔNG CÓ "@ 3x" để không đầu độc các thiết bị 2x?
dark lovfelt

Có vẻ như lựa chọn 3x trên iPhone 6 chỉ xảy ra nếu tài sản được đề cập là JPG thay vì PNG.
emreberge

102

CẬP NHẬT:

Liên kết mới cho kích thước hình ảnh biểu tượng của apple.

https://developer.apple.com/ios/human-interface-guferences/graphics/image-size-and-resolution/

nhập mô tả hình ảnh ở đây


Có, đúng là ở đây, Apple cung cấp tài liệu chính thức về kích thước biểu tượng hoặc hình ảnh

nhập mô tả hình ảnh ở đây

bạn phải đặt hình ảnh cho iPhone6 ​​và iPhone6 ​​+

Đối với iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

Dành cho iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

Để biết thêm thông tin về Hình ảnh và độ phân giải của nó, đây là bài viết hữu ích nhất

Để đặt kích thước hình ảnh cho các điều khiển, bạn có thể đặt 1x @ 2x và @ 3x như sau:

nhập mô tả hình ảnh ở đây


8
nếu tất cả các thiết bị là retina 2x hoặc 3x tại sao danh mục tài sản yêu cầu hình ảnh 1x trên các dự án chỉ nhắm mục tiêu cho iPhone trên iOS 7/8? Không có ý nghĩa.
Vịt

1
có thể là cho iphone4 @RubberDuck :) xem ipad 2 và iPad Mini cần 1x
Nitin Gohel

xin lỗi nhưng bạn đã không đọc những gì tôi viết Tôi đang nói về một dự án chỉ dành cho iPhone cho iOS 7. Không có iphone nào có 1x có thể chạy iOS 7 nhưng danh mục tài sản vẫn yêu cầu.
Vịt

@RubberDuck Chọn tài sản hình ảnh của bạn và sau đó xem ngăn tiện ích ở bên phải Xcode. Một trong các tab có một bộ các hộp kiểm. Có lẽ (các) tài sản của bạn có quá nhiều hộp kiểm được chọn dẫn đến 1x xuất hiện dưới dạng tùy chọn.
rmaddy


10

Tôi đã thử nghiệm bằng cách thực hiện một dự án mẫu và tất cả các trình giả lập dường như sử dụng hình ảnh @ 3x, điều này thật khó hiểu.

Tạo các phiên bản khác nhau của hình ảnh trong danh mục tài sản của bạn sao cho hình ảnh đó cho bạn biết đó là phiên bản nào:

nhập mô tả hình ảnh ở đây

Bây giờ lần lượt chạy ứng dụng trên mỗi trình giả lập. Bạn sẽ thấy hình ảnh 3x chỉ được sử dụng trên iPhone 6 Plus.

Điều tương tự cũng đúng nếu các hình ảnh được vẽ từ gói ứng dụng sử dụng tên của chúng (ví dụ: one.png , one@2x.pngone@3x.png ) bằng cách gọi imageNamed:và gán vào chế độ xem hình ảnh.

(Tuy nhiên, có một sự khác biệt nếu bạn gán hình ảnh cho chế độ xem hình ảnh trong Trình tạo giao diện - phiên bản 2x bị bỏ qua trên các thiết bị có độ phân giải kép. Đây có lẽ là một lỗi, rõ ràng là một lỗi pathForResource:ofType:.)


1
Bạn đã đánh dấu tài sản là "phổ quát", do đó bạn thấy hành vi nhất quán. Thay vào đó, hãy thử chọn "thiết bị cụ thể" trong menu thả xuống!
Nikolay Spassov

1
@RalphZhouYuan Nó hoạt động tốt với tôi. Bạn sẽ không thấy phiên bản 2x được liệt kê , nhưng chỉ cần gán phiên bản 1x và phiên bản 2x hoặc 3x sẽ được sử dụng chính xác. Hoặc, chỉ cần sử dụng một danh mục tài sản.
matt

1
@RalphZhouYuan Đây là ví dụ có thể tải xuống của tôi: github.com/mattneub/Programming-iOS-Book-Examples/tree/master/iêu - nó hiển thị cả sử dụng tệp hình ảnh trong gói ứng dụng và tệp hình ảnh trong danh mục tài sản và tất cả đều hoạt động chính xác.
mờ

3
@matt Cuối cùng tôi thấy rằng vấn đề của tôi liên quan đến cài đặt mục tiêu triển khai (là 6.0) của ứng dụng của tôi. Tôi đã mở một câu hỏi: stackoverflow.com/questions/26333278/ và đã báo cáo lỗi cho Apple.
inexcii

1
@RalphZhouYuan Wow, công việc thám tử tuyệt vời theo dõi mà xuống! Cảm ơn đã báo cáo lại.
matt

2

ios sẽ luôn cố gắng chụp ảnh tốt nhất, nhưng sẽ quay lại các tùy chọn khác .. vì vậy nếu bạn chỉ có hình ảnh bình thường trong ứng dụng và nó cần hình ảnh @ 2x thì nó sẽ sử dụng hình ảnh bình thường.

nếu bạn chỉ đặt @ 2x trong dự án và bạn mở ứng dụng trên một thiết bị bình thường, nó sẽ thu nhỏ hình ảnh xuống để hiển thị.

nếu bạn nhắm mục tiêu các thiết bị ios7 và ios8 và muốn có chất lượng tốt nhất, bạn sẽ cần @ 2x và @ 3x cho điện thoại và bình thường và @ 2x cho tài sản ipad, vì không còn điện thoại retina và không có ipad @ 3x.

có lẽ tốt hơn là tạo các tài sản trong ứng dụng từ đồ họa vector ... kiểm tra http://mattgemmell.com/USE-pdf-images-in-ios-apps/


chỉ cần sử dụng PaintCode tuyệt vời cho các vectơ trong ứng dụng
Fattie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.