2015-04-18 18 views
5

Bu sayfadaki (2009 yılında yazılan) eğitici yazıları artık işe yaramayın. http://www.androidsnippets.com/how-to-make-an-activity-fullscreenAndroid libgdx'i sürükleyici moda zorla

public class FullScreen extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
           WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.main); 
    } 
} 

Benzer şekilde, android.xml içinde temasını değiştirmek için çalışıyor herhangi bir etkisi yoktur: i cant, enter image description here

birkaç saatliğine web temizleme sonra: İşte

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" bir ekran görüntüsü Bana yardımcı olabilecek makaleler bul. Peki, libgdx'in 1.5.4 sürümünde nasıl bir immersive full screen alabilirim?

public class AndroidLauncher extends AndroidApplication { 
    @Override 
    protected void onCreate (Bundle savedInstanceState) { 
     hideSystemUi(); 

     super.onCreate(savedInstanceState); 
     AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); 
     config.hideStatusBar=true; 
     config.useImmersiveMode=true; 
     initialize(new game(), config); 
    } 


    private void hideSystemUi() { 
     getWindow().getDecorView().setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_IMMERSIVE); 
    } 
} 

cevap

3

android aktivitede bu deneyin:

---- DÜZENLEME ---- İşte artık tamamen çalışma kodudur bu irade sadece iş

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | 
      View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
      View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | 
      View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 

Not API seviyesi 19 veya üstü.

config.hideStatusBar = true; 
config.useImmersiveMode = true; 

AndroidLauncher sınıfında ancak uygulama standart başlayacak sürükleyici içinde uygulamayı göstermek için yeterlidir:

+0

bir Aktivite sınıfı vardır hedeflerken OnWindowFocusChanged yönteme ilave edilmesi gerekir. Bu yüzden ilk kimse işe yaramadı –

+0

Evet var: https://github.com/anubiann00b/TileArena/blob/master/android/src/game/tile/arena/android/AndroidLauncher.java Başlatıcıyı genişletiyor 'Etkinliği' genişleten 'Uygulama'. –

+0

hala hiçbir şey: http://jsfiddle.net/85e9hqve/ –

0

Ne yazık nedeniyle benim şimdiki ün yorum yapamam, ancak ekleyerek bulduk modu ve daha sonra yoğun içerik modunda güncellemek, Android sürükleyici modu hakkında daha fazla bilgi: Eğer SYSTEM_UI_FLAG_IMMERSIVE_STICKY bayrağını kullandığınızda

, sistemdeki bir içe tokatlamak alanları çubukları geçici bir yarı saydam halde görünmesine neden olur barlar, ama hiçbir bayrak c değildir öğrenilen ve sistem UI görünürlüğü değiştirmek dinleyicileri tetiklenmez. Kısa bir gecikmeden sonra çubuklar otomatik olarak tekrar gizlenir veya kullanıcı ekranın ortası ile etkileşime girer.

Android sdk page
Yani benim Sonuç config.useImmersiveMode yapışkan bayrağını kullanmak olurdu. Yan not

, @TargetApi (Build.VERSION_CODES.HONEYCOMB) bir API lvl 11'den az