2013-02-13 43 views
10

Tôi nên nhập gì vào config.xml hoặc tôi nên làm gì nói chung, để màn hình splash của ứng dụng PhoneGap Build hiển thị chính xác trên thiết bị Android ở chế độ ngang?Màn hình splash ngang cho Android trong PhoneGap Build

PhoneGap Build (được sử dụng để biên dịch) docs/blog không có gì về điều này. Chỉ Portrait được bao phủ cho Android.

Kể từ đầu tiên (tài liệu) nói rằng việc sử dụng heightwidth được cross-nền tảng được hỗ trợ, tôi đã cố gắng sử dụng nó:

<gap:splash src="res/splash-200x320-android.png"    gap:platform="android" gap:density="ldpi" width="200" height="320" /> 
<gap:splash src="res/splash-320x480-android-bada-ios.png" gap:platform="android" gap:density="mdpi" width="320" height="480" /> 
<gap:splash src="res/splash-480x800-android-bada-wp.png"  gap:platform="android" gap:density="hdpi" width="480" height="800" /> 
<gap:splash src="res/splash-720x1280-android.png"   gap:platform="android" gap:density="xhdpi" width="720" height="1280" /> 
<gap:splash src="res/splash-320x200-android.png"    gap:platform="android" gap:density="ldpi" width="320" height="200" /> 
<gap:splash src="res/splash-480x320-android-bada-ios.png" gap:platform="android" gap:density="mdpi" width="480" height="320" /> 
<gap:splash src="res/splash-800x480-android-bada-wp.png"  gap:platform="android" gap:density="hdpi" width="800" height="480" /> 
<gap:splash src="res/splash-1280x720-android.png"   gap:platform="android" gap:density="xhdpi" width="1280" height="720" /> 

Nhưng không có hiệu lực thi hành - trong chế độ phong cảnh trên thiết bị Android của tôi, tôi luôn xem phiên bản chế độ portait kém kỹ lưỡng của màn hình giật gân của tôi.

Trả lời

8

Theo kiến ​​thức hiện tại của tôi và sau khi nghiên cứu sâu, tôi thấy rằng đây là lỗi đã được xác nhận và hiện tại chúng tôi không thể làm gì về điều này.

PhoneGap Build (và có thể cả PhoneGap) cũng không hỗ trợ màn hình giật gân. Tôi thậm chí đã thử cách iOS (như được hiển thị trong câu hỏi - sử dụng các thông số widthheight, chính thức không được hỗ trợ cho Android). Nhưng nó vẫn không hoạt động.

Tất cả đều ổn trong chế độ dọc, nhưng bất kể bạn sử dụng thiết bị Android có mật độ màn hình nào - ở chế độ ngang, bạn sẽ thấy phiên bản màn hình giật gân bị biến dạng xấu xí.

+4

Rõ ràng điều này được theo dõi [ở đây] (https://github.com/phonegap/build/issues/198) –

6

Tôi không sử dụng PhoneGap Build, nhưng tôi đã cố gắng khắc phục điều này trong ứng dụng Android PhoneGap cơ bản.

Giả sử bạn có hai hình ảnh giật gân khác nhau - một phong cảnh và một phiên bản dọc - và bạn muốn cả hai đều kéo dài để lấp đầy khu vực màn hình có sẵn.

Đặt một trong drawable và một khác trong drawable-land. (Hoặc drawable-land-hdpi, drawable-land-xhdpi, vv, nếu bạn bạn có nhiều kích cỡ.)

Tiếp theo, hãy chắc chắn rằng bạn đang quản lý cấu hình thay đổi mình trong AndroidManifest.xml:

<activity 
    ... 
    android:configChanges="orientation|screenSize|keyboardHidden" 
    ... 
> 
</activity> 

Sau đó đặt điều này trong Hoạt động chính của bạn lớp mở rộng DroidGap.java:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (super.splashDialog != null) { 
     ViewGroup rootView = (ViewGroup) super.splashDialog.getWindow() 
       .getDecorView().findViewById(android.R.id.content); 
     LinearLayout linearLayout = (LinearLayout) rootView.getChildAt(0); 
     // manually refresh the splash image 
     linearLayout.setBackgroundDrawable(null); 
     linearLayout.setBackgroundResource(R.drawable.mysplash); 
    } 
} 

Điều này sẽ làm cho hình nền được vẽ lại và kéo dài bất cứ khi nào người dùng thay đổi hướng.

+1

Đây là giải pháp tìm kiếm tốt (vì vậy +1), nhưng tôi sẽ không chấp nhận nó vì nó là cách quá chủ đề. Ý tưởng của câu hỏi của tôi là mang lại câu trả lời cụ thể cho PhoneGap Build - tức là, chỉ sử dụng HTML/Javascript và 'config.xml'. Bạn không có khả năng sử dụng mã Java thuần túy trong các ứng dụng PhoneGap Build, phải không? – trejder

+0

@trejder có, bạn có thể sử dụng mã Java trong ứng dụng PhoneGap. –

+0

@LarryAasen Không, bạn không thể! Đọc bình luận của tôi. Tôi đang nói về _PhoneGap ** Build ** _. Khi sử dụng [PGB] (https://build.phonegap.com/) (xây dựng trên đám mây), bạn chỉ bị giới hạn ở HTML/Javascript. Bạn chỉ có thể sử dụng mã Java thuần túy, nếu bạn xây dựng cục bộ, trong môi trường của riêng bạn. – trejder

2

Nó có thể được thực hiện kể từ tháng Tư 2014 tại PhoneGap Build bằng gap:qualifer, ví dụ:

<gap:splash src="portrait-xxhdpi.png" gap:platform="android" gap:qualifier="port-xxhdpi" /> 
<gap:splash src="landscape-xxhdpi.png" gap:platform="android" gap:qualifier="land-xxhdpi" /> 

Xem thisthis bài viết để biết chi tiết.

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