2012-12-12 101 views
2

過去幾個小時我一直在處理新的DreamService API,而且非常的甜美。不過,我確實有一個問題。DreamService的鎖定屏幕方向

我想在顯示DreamService時將屏幕方向鎖定爲風景。 DreamService的目的是顯示一些寬屏照片,我寧願沒有屏幕頂部和底部的黑色條。

我試過了很多東西,其中包括Java代碼中的setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)和清單文件中的android:screenOrientation="landscape",但都沒有成功。

這讓我想知道:是否可以鎖定DreamService的方向?

回答

2

Android開發人員小組證實,目前在開發者環聊中,目前這是不可能的。

我相信谷歌希望DreamServices在兩種屏幕方向上工作,所以這就是爲什麼它不可能。

0

很遺憾,我還沒有找到任何解決方案,我不得不使用一個令人討厭的解決方法,它可能會或可能不適用於您,它是在設置佈局之前關閉自動旋轉設置:

在你DreamService類:

import android.provider.Settings; 
<...> 

    @Override 
public void onAttachedToWindow() { 

    Settings.System.putInt(getContentResolver(), 
      android.provider.Settings.System.ACCELEROMETER_ROTATION, 0); 

    setContentView(R.layout.dream_main); 
<...> 

在您的清單:

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
1

解決方法:我們E本LIB https://github.com/rongi/rotate-layout

的build.gradle

dependencies { 
     compile 'rongi.rotate-layout:rotate-layout:2.0.0' 
    } 

your_daydream_layout.xml

<com.github.rongi.rotate_layout.layout.RotateLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:angle="-90"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <WebView 
     android:id="@+id/daydream_webview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#2a2e31" /> 

    <TextView 
     android:id="@+id/dream_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:fontFamily="sans-serif-light" 
     android:text="..." 
      android:textColor="#abc" 
      android:textSize="20sp" /> 
    </RelativeLayout> 
</com.github.rongi.rotate_layout.layout.RotateLayout> 

而BTW: 允許自動旋轉你的白日夢..從https://code.google.com/p/android/issues/detail?id=40226

「看起來像這樣的修復已經實施(沒有人告訴我們 我們)。不幸的是,它不能正常工作。在我的Nexus 6p(6.0.1, Build#MHC19Q)上,如果我滑動到最左側的屏幕(Google Now?),點擊左上方的漢堡菜單 ,選擇設置,然後轉到底部的 ,主屏幕選項有一個「允許旋轉」。通過啓用 ,主屏幕將可以旋轉,以便在需要時橫向顯示 。 Daydream可以繼承該旋轉並且也以橫向模式顯示。「 - 2016年5月18日