2011-08-27 33 views
5

Tôi đang gặp phải sự cố về hình ảnh Android.Hình ảnh trên Android gây nhầm lẫn cho tôi

Tôi chỉ không biết kích thước để tạo ra chúng và cách làm cho chúng hoạt động.

Tôi đến từ quyền phát triển iphone, vì vậy trong iphone dev tôi sẽ kích hoạt photoshop, tạo canvas là 640 * 960 và thiết kế ứng dụng của tôi.

Sau đó tôi sẽ cắt kết quả thiết kế và xuất tất cả các hình ảnh có phần mở rộng @ 2x. Sau đó, tôi sẽ quy mô nó bằng 0,5 và xuất cho các thiết bị hiển thị tiêu chuẩn.

Điều này rất dễ hiểu ... điều này rất dễ thực hiện. Nếu tôi muốn một hình ảnh để chiếm một nửa màn hình tôi sẽ làm cho nó 320px rộng cho res cao và 160px rộng cho res tiêu chuẩn.

Rất tiếc, Android không hoạt động như thế này. Tôi không thể hiểu được. Không có "chuyển đổi dễ dàng" như nó được. Tôi không biết có bao nhiêu dip một màn hình trong Android!

Vì vậy, tôi sẽ chỉ sử dụng những thứ như wrap_content, điều này không hữu ích vì sau đó các màn hình khác nhau chỉ hiển thị các độ phân giải khác nhau của hình ảnh. Tôi đang gặp rất nhiều vấn đề với các lề không liên quan đến hình ảnh và tất cả các loại!

Cách sử dụng hình ảnh với Android đúng cách?

+1

Có thể trợ giúp nếu bạn mô tả những gì bạn muốn làm;). Bạn đã đọc và hiểu điều này chưa ?: http://developer.android.com/guide/practices/screens_support.html – mibollma

+1

Về cơ bản, bạn phải giữ đúng biểu tượng trong thư mục bên phải. [Đây là một công cụ tốt để làm việc với] (http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html). – Reno

+0

Reno - cảm ơn liên kết đó - có vẻ rất hữu ích. Tôi đã áp dụng cho phòng chat android, cảm ơn cho tip (và cảm ơn cho chia sẻ câu hỏi của tôi có quá). Mibollma Tôi đang cố gắng tạo một ứng dụng! lol, nó không thực sự cụ thể, chỉ là hình ảnh có kích thước khác nhau trên màn hình khác nhau ... hình ảnh nhỏ trong thiết kế của tôi đột nhiên là rất lớn trên màn hình vv vv ... –

Trả lời

4

Phát triển Android giống với phát triển web nhiều hơn. Để cụ thể hơn, nó giống như phát triển web, nơi bạn cho phép trang thay đổi kích thước bằng cửa sổ trình duyệt. Phát triển iPhone giống với web dev nơi bạn sử dụng chiều rộng trang cố định và có thể kiểm soát nhiều khoản thanh toán.

Với Android, màn hình có thể có kích thước gần như bất kỳ và hầu như bất kỳ hướng nào, nhưng quan trọng nhất là bất kỳ độ phân giải nào. Nó giống như @ 2x nhưng bạn cần nhiều biến thể hơn vì Android đa dạng hơn. Nó khác nhưng bạn sẽ quen với nó.

Trang này là chính thức đồ họa tài liệu hướng dẫn lại: http://developer.android.com/guide/practices/screens_support.html

Nhưng trong thực tế tôi đã tìm thấy trang này để được sử dụng thực tế hơn: http://coding.smashingmagazine.com/2011/06/30/designing-for-android/

Mục đích là khi bạn có một hình ảnh của một kích thước vật lý cụ thể trên màn hình, nó sẽ hiển thị khá nhiều kích thước tương tự trên bất kỳ thiết bị nào, cho dù đó là thiết bị có độ phân giải thấp hoặc thiết bị siêu phân giải cao (như những thiết bị sắp ra mắt).

DIP là phép đo liên quan đến kích thước vật lý thay vì pixel. Nếu bạn nói điều gì đó rộng 100 lần, nó sẽ có cùng kích thước vật lý trên tất cả các thiết bị Android, bất kể độ phân giải của thiết bị là bao nhiêu.

Bạn chỉ có thể gắn đồ họa có độ phân giải cao trong thư mục draw-xhdpi, nhưng Android sẽ phải thay đổi kích thước khi đang di chuyển và bạn có thể thấy các vấn đề về hiệu suất và chất lượng. Đây là lý do tại sao bạn phải cung cấp một bộ.

Hãy nhớ khi thiết kế mọi thứ sẽ kéo dài. Đừng cố gắng và sửa mọi thứ với cùng kích thước, nó sẽ không hoạt động. Vì vậy, ví dụ cho các nút, bạn có thể muốn sử dụng hình ảnh căng ra (đọc lên trên hình ảnh 9-vá) để ứng dụng thay đổi kích thước tùy thuộc vào kích thước màn hình khác nhau.

Ngoài ra, bạn cũng có thể tạo ra rất nhiều các biểu tượng mà bạn cần (các menu, thông báo vv) sử dụng công cụ phòng thu icon FANTASTIC Roman Nurik của http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

Vì vậy, ví dụ nếu bạn cần một biểu tượng chạy ứng dụng, chỉ cung cấp cho công cụ của mình một bitmap, và nó trims nó, cân nó, miếng đệm nó, thêm một hiệu ứng nút 3D (tỏa sáng và bóng tối), và sau đó phun ra các phiên bản cho xhdpi, hdpi, mdpi, ldpi. Nó tiết kiệm cho tôi DAYS thời gian trên mọi dự án.

Chúc may mắn!

+1

liên kết thứ hai rất hữu ích và thực sự mở mắt về vấn đề này. :) Vì vậy, một trường hợp của ứng dụng sẽ trông hơi khác trên tất cả các thiết bị tôi đoán. Tất cả về fill_parents và wrap_contents để đảm bảo tất cả đều phù hợp với thiết bị. –

+0

Có. Nó sẽ mất thời gian để hiểu tất cả, nhưng chỉ cần giữ kiên trì và bạn sẽ hiểu, khi bạn giải quyết từng vấn đề. Nếu bạn cho rằng hầu hết mọi thứ sẽ tự động thay đổi kích thước (hình ảnh 9patch là v quan trọng) thì nó trở nên dễ hiểu hơn. Và hãy nhớ rằng đối với mỗi hình ảnh bạn sử dụng, bạn cần các phiên bản của nó ở các kích thước khác nhau cho xhdpi, hdpi, mdpi và ldpi và bằng cách đó bạn có thể xử lý nó như thể hình ảnh có kích thước vật lý cố định trên màn hình bất kỳ. –

+0

Thomas, tôi đã thêm một liên kết khác cho một công cụ rất hữu ích để tạo nhiều hình ảnh bạn sẽ cần –

1

Hãy nhìn vào hai liên kết sau đây: firstsecond

điện thoại Android có kích thước khác nhau và mật độ không giống như iPhone. Để phát triển Android, bạn cần phải rõ ràng điện thoại nào bạn đang nhắm mục tiêu (mật độ khôn ngoan) để sử dụng các giá trị được mã hóa cứng. Nếu bạn muốn làm cho nó nói chung, nó là tốt để sử dụng wrap_content. Tôi không biết bạn có vấn đề gì với điều đó. Và bạn đang nói về lợi nhuận gì? Bạn có thể chỉ định?

+0

Tôi đã đọc những người hơn và hơn và mặc dù họ rất hữu ích, họ vẫn còn mơ hồ và không để lại cho tôi bất kỳ người phụ thuộc vào những gì tôi đang làm. –

+0

Tôi đã chỉnh sửa câu trả lời .... 2 liên kết đủ tốt – Gaurav

Các vấn đề liên quan