2012-03-07 25 views
5

Tôi đã thêm màn hình giật gân vào ứng dụng Phonegap của mình bằng cách thêm "super.setIntegerProperty (" splashscreen ", R.drawable.splash);" trước dòng super.loadURL ... trong DefaultActivity.Hướng màn hình bắt mắt của Phonegap (Android)

Có cách nào chỉ khóa hướng màn hình của màn hình để chụp chân dung mà không khóa toàn bộ ứng dụng?

Trả lời

1

Nếu bạn đang sử dụng một phiên bản gần đây của PhoneGap (DroidGap) hoặc Apache Cordova bạn có thể buộc hướng màn hình để cảnh quan bằng cách thay đổi screenOrientation của bạn trong Android. tệp xml. Kết quả DroidGap "hoạt động instantiation" nên tìm một cái gì đó như thế này:

 <activity 
     android:name="org.apache.cordova.DroidGap" 
     android:label="@string/app_name" 
     android:configChanges="orientation|keyboardHidden" 
     android:screenOrientation="landscape"   
     > 
     <intent-filter> 
     </intent-filter> 
    </activity> 
+6

Điều này không khóa hướng của toàn bộ ứng dụng về phong cảnh? Câu hỏi ban đầu là về việc khóa hướng màn hình của màn hình để chụp chân dung mà không khóa hướng của toàn bộ ứng dụng. –

0

Viết sau bên trong phương pháp onCreate của hoạt động Splashscreen:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

+0

Cảm ơn, nhưng vấn đề là với PhoneGap, các Splashscreen không phải là Hoạt động riêng biệt. Nếu tôi buộc hướng đến Hoạt động đó, tôi buộc toàn bộ ứng dụng. – user992804

0

Thêm dòng này trong AndroidManifest.xml của bạn:

4

Sau nhiều tìm kiếm tôi đã tìm thấy rằng một cách đúng đắn để giải quyết hướng màn hình splash là để quản lý hai hình ảnh sử dụng mã này vào MainActivity bạn

if (getResources().getConfiguration().orientation == 2) { 
     super.setIntegerProperty("splashscreen", R.drawable.splashlandscape); 
     Log.d("Orientation", "Landscape"); 
    } 
    else { 
     super.setIntegerProperty("splashscreen", R.drawable.splashportrait); 
     Log.d("Orientation", "Portrait"); 
    } 
+0

Tác phẩm này. Cảm ơn !!! – Rajaraman

5

Giải pháp sau đây hoạt động cho Cordova 3+ trên Android và iOS. Nó chỉ khóa định hướng cho màn hình splash, sau đó mở khóa khi ứng dụng đang chạy.

Fix định hướng trong config.xml:

<preference name="orientation" value="portrait" /> 

Sau đó sử dụng screen orientation plugin này để mở khóa nó khi ứng dụng đã được khởi tạo:

document.addEventListener("deviceready", function(){ 
    screen.unlockOrientation(); 
}, false); 
+0

Cảm ơn! Làm việc như một say mê! – Lotus

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