2013-01-01 31 views
5

Gần đây tôi phát triển một ứng dụng cho Galaxy 10.1, 7 inch với 1024x600, 480x800, Lưu ý với chiều cao 800 abd S3 với chiều cao 720. tất cả chúng đều chạy hoàn hảo trên độ phân giải này. Nhưng khi chúng ta nói về note 2 và galaxy 7 plus và khác chúng ta có một số vấn đề. Đó là bố trí không được nhìn thấy chính xác trên các thiết bị này. Tại đó, tôi phải đối mặt với một vấn đề trong layout tôi sử dụng thư mục layout để lưu ý như bố trí-normal-xhdpi-1280x800 và cho S3 bố trí-normal-xhdpi-1280x720 và đặt tất cả các layout trong một thư mục mà làm cho một gói ứng dụng hỗ trợ tất cả các layout này.Bố cục trên các kiểu điện thoại di động khác nhau

Nhưng khi khách hàng tải xuống gói ứng dụng, họ sẽ giải quyết vấn đề mà Galaxy Note chọn bố cục bố cục-xhpi-1280x720 bố cục và nó đúng nhưng S3 và Galaxy Note 2 có mật độ khác nhau.

Bởi vì vấn đề mà tôi không thể tìm ra cách khai báo thư mục bố trí cho S3 và Lưu ý 2. Có cách nào mà tôi chỉ sử dụng mặc định bốn thư mục

Layout Xlarge

Layout xhdpi với bình thường

Layout mdpi

Layout hdpi với bình thường

và hỗ trợ se tất cả các bố trí cho tất cả các màn hình như S3, lưu ý 1, lưu ý 2, 7 inch cộng và những người khác. Khi tôi cố gắng để bắt đầu dự án của tôi, tôi luôn luôn nghĩ về các trò chơi nổi tiếng lớn như một trong số này là "Temple Run" chạy trên tất cả các điện thoại di động và các tab.

Tạo nhóm thư mục bố cục khiến ứng dụng của tôi nặng như vượt quá giới hạn 80MB và thị trường Google chỉ chấp nhận các ứng dụng dưới 50MB.

Về mặt ngữ pháp, có cách nào đó mà chúng tôi chỉ sử dụng một thư mục bố cục và hỗ trợ bố cục này trên tất cả các màn hình. Tôi đã đọc số bài báo và cổng thông tin dành cho nhà phát triển Android nhưng họ không thỏa mãn tôi. Tất cả đều nói bạn phải tạo thư mục bố cục khác nhau cho các màn hình khác nhau và thậm chí trên stackoverflow tôi thấy tình huống tương tự để tiết kiệm thời gian của tôi trong các dự án đầu tiên nhưng công việc của tôi ngày càng tăng dần và tôi muốn tôi bắt đầu với những kỹ thuật đó khiến ứng dụng của tôi không nặng nề vì các bố cục này không làm lãng phí thời gian của tôi trong việc tạo số bố cục cho số ứng dụng.

Số lượng trợ giúp sẽ được đánh giá cao và tôi muốn câu trả lời và đề xuất vì những vấn đề này phải đối mặt với số lượng nhà phát triển mới và những người khác.

+0

+1 cho Câu hỏi hay. –

Trả lời

2

Tôi cũng đang gặp phải vấn đề như vậy trong đơn đăng ký của mình. Nhưng tôi tìm thấy một giải pháp tốt cho việc này. Tôi chỉ có một bố cục cho tablet và tên thư mục là layout-sw600dp. Bây giờ, khi có vấn đề về chiều cao và chiều rộng, tôi đã tạo một số thư mục values khác nhau, trong đó tôi đặt dimensionsfont size và các thư khác. Vì vậy, sẽ không có giá trị constant trong layout của màn hình máy tính bảng.

androd:layout_width:"60dp" // i drop this scenario 

androd:layout_width:"@dimen/tab_width" // i used this scenario 

và tên values thư mục của bạn sẽ như thế nào

values-xlarge 
values-large 

Tất cả các giá trị này sẽ được lấy từ thư mục giá trị của bạn. Nó sẽ không tạo bố cục khác nhau, nhưng một bố cục có thể được sử dụng nhiều lần.

Edit:

Sau đây là lời của Developer.android trang web. Cấu hình ví dụ

Để giúp bạn nhắm mục tiêu một số thiết kế của bạn với nhiều loại thiết bị khác nhau, sau đây là một vài con số cho độ rộng màn hình tiêu biểu:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

Sử dụng vòng loại kích thước từ bảng 2, ứng dụng của bạn có thể chuyển đổi giữa tài nguyên bố cục khác nhau của bạn cho thiết bị cầm tay và máy tính bảng sử dụng bất kỳ số nào bạn muốn cho chiều rộng và/hoặc chiều cao. Ví dụ, nếu 600dp là chiều rộng nhỏ nhất có sẵn hỗ trợ bởi bố trí máy tính bảng, bạn có thể cung cấp hai bộ bố trí:

res/layout/main_activity.xml # Đối với điện thoại di động
res/layout-sw600dp/main_activity.xml # cho máy tính bảng

===

trong này, bạn có thể thấy rằng, bố trí cho 1280 * 720 là dưới layout-sw720dp nên thay vì tạo layout-normal-xlarge bạn nên sử dụng điều này cho phép bạn để quyết định sự khác biệt. Thay vì xác định khác nhau bằng cách sử dụng layout-large-mdpilayout-large-ldpi, bạn không chỉ xác định được là smallest width? Bởi vì, android cung cấp thư mục drawables cho các hình ảnh khác nhau, điều duy nhất là độ phân giải của nó. Và bạn có giải pháp trên.

+1

layout-sw600dp hỗ trợ ở trên 3. Và tôi đang phát triển ứng dụng của tôi từ 2.2 trở lên – User42590

+0

không, nó không đúng. Tôi đang phát triển ứng dụng trong 2.3. Nhưng tất cả API phiên bản máy tính bảng đều ở trên 3. Vì vậy, họ có thể hiểu 'layout-sw600dp'. Nếu bạn chưa thử, hãy thử nó. Bạn sẽ nhận được kết quả. –

+1

vâng tôi thử điều này nhưng tôi chỉ muốn có một thư mục bố trí và có số màn hình bao gồm tab và điện thoại di động vì vậy tôi phải khai báo số thứ nguyên cho chúng. vì vậy vấn đề cũng sẽ tồn tại sau – User42590

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