2013-08-29 49 views
12

tôi có hai câu hỏi:đầy đủ ứng dụng màn hình android

  1. một làm thế nào tôi có thể chạy ứng dụng của tôi trên toàn màn hình
  2. cách chơi video chạy video trên toàn màn hình.

tôi đã thử rất nhiều và vẫn đang đấu tranh để đạt được điều này nhưng không thể tìm thấy giải pháp.

danh sách các giải pháp tôi tìm thấy nhưng họ không thực hiện yêu cầu của tôi

  • này ẩn chỉ thanh thông báo. .

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    

    GetWindow() setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

  • cũng giúp giấu đi chỉ thanh thông báo

    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
    
  • nó hồ sơ thấp thanh điều hướng không hề giấu giếm nó.

    getWindow(). GetDecorView(). SetSystemUiVisibility (View.SYSTEM_UI_FLAG_LOW_PROFILE);

  • không ảnh hưởng đến hoạt động của tôi.

    anyView.setSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

lưu ý rằng:

  • tôi không nói về rễ một thiết bị, vì vậy vui lòng cung cấp những giải pháp mà có thể làm việc mà không cổ vũ một thiết bị.
  • tôi không nói về chỉ ẩn thanh thông báo, nhưng toàn màn hình bằng cách ẩn cả thanh điều hướng và thanh thông báo.
  • tôi đang nói về hạt thạch api 4.1 hoặc lớn hơn 4.1 phiên bản android
  • và vui lòng trả lời bằng mã.

sau khi nghiên cứu của tôi và câu trả lời của bạn, tôi đang nhận này:

enter image description here

nhưng ứng dụng của tôi sẽ giống như thế này mà không có thanh điều hướng:

enter image description here

tôi không muốn thanh điều hướng hệ thống hiển thị trong ứng dụng của tôi.

+0

Ứng dụng của bạn không chạy ở chế độ toàn màn hình khi không có thanh thông báo ?! – Enthusiasmus

+0

Bạn có thể xem xét sử dụng 'setSystemUIVisibility (int)' và các cờ khác nhau để sử dụng như [SYSTEM_UI_FLAG_LOW_PROFILE] (http://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_LOW_PROFILE) Bạn có thể sử dụng khác nhau cờ kết hợp với nhau bằng cách tách chúng bằng '|' – codeMagic

+0

@Hamad, bạn có tìm thấy câu trả lời của mình không? –

Trả lời

0

tôi đã thực hiện 2 bố trí một cho kích thước bình thường và một cho toàn màn hình và bên scrreen đầy đủ tôi nhận được các thiết bị kích thước và gán nó vào máy nghe nhạc video

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getRealSize(size); 
int w=size.x; 
int h=size.y; 
videoPlayer.setFixedSize(w, h); 
+0

không hoạt động trong dự án của tôi – Hamad

+0

mã của bạn trông như thế nào –

0

Tôi nghĩ rằng bạn không thể ẩn thanh hệ thống trong android 4.0> (chỉ trong máy tính bảng, trong điện thoại, bạn sẽ có thể)

Những gì bạn có thể làm là để ẩn các biểu tượng và để vô hiệu hóa một số nút (tất cả mọi người ngoại trừ nhà)

Bạn có thể thử này:

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
     getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);    

     } 

Cũng cho việc vô hiệu hóa các nút:

này là dành cho nút quay lại:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    return false; 
    } 

này cho menu:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 

     try 
     { 
      if(!hasFocus) 
      { 
       Object service = getSystemService("statusbar"); 
       Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); 
       Method collapse = statusbarManager.getMethod("collapse"); 
       collapse .setAccessible(true); 
       collapse .invoke(service); 
      } 
     } 
     catch(Exception ex) 
     { 
     } 

} 
+0

donot muốn cấu hình thấp ... muốn ẩn hoàn toàn. – Hamad

+1

đọc dòng đầu tiên.- – leojg

0

Video Players chạy toàn màn hình bằng cách thiết lập

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

setFlags() trước setContentView(View)

này sẽ hiển thị trên thanh hệ thống trên bất kỳ tương tác người dùng, chỉ cần như trình phát video.

Bạn gần nhất có thể chạy ứng dụng toàn màn hình bằng cách đặt ở chế độ Tắt chế độ, các nút hệ thống sẽ xuất hiện dưới dạng chấm.

Để sử dụng đèn ra chế độ chỉ cần sử dụng bất kỳ quan điểm trong hoạt động của bạn và gọi

anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

Đối Ẩn thanh điều hướng sử dụng này trong onStart() của bạn để mỗi khi bạn nhận được để hoạt động mà nó sẽ được ở chế độ toàn màn hình.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Tôi hy vọng điều này sẽ hữu ích!

+0

Để ngăn chặn sự lộn xộn giữa 2 hoạt động toàn màn hình (với thanh điều hướng ẩn), hãy gọi 'setSystemUiVisibility()' trước 'setContentView()' trong 'onCreate()'; – mmathieum

28

Tôi không chắc chắn bạn đang làm gì, nhưng sau đây ẩn thanh Thông báo và phím Điều hướng mềm (như đã thấy trên thiết bị Nexus của Google), do đó ứng dụng về cơ bản là "toàn màn hình".

Edit2

Trong Android 4.4 (API 19) Google giới thiệu mới Immersive chế độ mà có thể ẩn navbar tình trạng & và cho phép một giao diện người dùng thực sự toàn màn hình.

// This snippet hides the system bars. 
private void hideSystemUI() { 
    // Set the IMMERSIVE flag. 
    // Set the content to appear under the system bars so that the content 
    // doesn't resize when the system bars hide and show. 
    mDecorView.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 // hide nav bar 
       | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
       | View.SYSTEM_UI_FLAG_IMMERSIVE); 
} 

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    mDecorView.setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

tham khảo:
https://developer.android.com/training/system-ui/immersive.html

Edit:
Thử nghiệm trên Android 4.3 (API 18) và Android 4.1 (API 16) với các phím mềm Nav.

@Override 
protected void onCreate(Bundle b) { 
    super.onCreate(b); 

    setContentView(R.layout.main); 

    int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LOW_PROFILE 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 

    getWindow().getDecorView().setSystemUiVisibility(mUIFlag); 
} 

Để biết thêm thông tin đọc lên trên http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

+1

Lý do cho downvote là gì? – kaderud

+0

Lol không bao giờ nhớ các phiếu bầu: D Đối với KitKat hoặc cao hơn, hãy sử dụng mã dòng đơn này trong onCreate - getWindow(). GetDecorView(). SetSystemUiVisibility (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); Phiên bản hệ điều hành Fos dưới KitKat (API 19) - Sử dụng các cờ khác –

+0

nó không hoạt động trong trường hợp của tôi, nó chỉ làm cho cấu hình thấp @chrkad – Hamad

-2

đi đến biểu hiện của bạn và thêm video này vào hoạt động của bạn

<activity 
     android:name="yourPackage.yourActivity" 

     android:theme="@android:style/Theme.Black.NoTitleBar"> 
+0

".Fullscreen" bị thiếu sau "NoTitleBar" – Honza

1

Trên mới android 4.4 bạn nên thêm dòng này:

View.SYSTEM_UI_FLAG_IMMERSIVE; 

Vì vậy, giải pháp làm việc mới ít nhất trên nexus4 4.4.2 là

final int mUIFlag = 
     View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LOW_PROFILE 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_IMMERSIVE; 

Một mình nhập vai sẽ không hoạt động mặc dù nó hoạt động khi kết hợp với các cờ khác. xem tài liệu để biết thêm chi tiết. Sau đó, bạn thêm vào hoạt động các kích hoạt của thiết lập này như thể hiện ở đây trước (Tôi chỉ thêm cho phù hợp)

getWindow().getDecorView().setSystemUiVisibility(mUIFlag); 
+0

tôi muốn điều này trong jellybeans 4.1 không phải là kitkat – Hamad

+0

ok xin lỗi tôi hiểu điều này không biết để giúp bạn ở đây có thể là sự kết hợp của các lá cờ khác là đủ tốt? – sivi

+0

kiểm tra điều này http://stackoverflow.com/questions/9558638/how-to-code-backward-compatible-new-feature-in-android-sdk – sivi

2

-Để ẩn Thanh trạng thái:

Một giải pháp tuyệt vời, tôi tìm thấy cho rằng vấn đề, thiết lập từng Hoạt động theme & windowSoftInputMode để các giá trị sau:

<activity android:name=".MyActivity" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:windowSoftInputMode="adjustResize"> <!-- theme : to set the activity to a full screen mode without a status bar(like in some games) --> 
</activity>            <!-- windowSoftInputMode : to resize the activity so that it fits the condition of displaying a softkeyboard --> 

để biết thêm refer here.

-Để thanh hide Thông báo:

Hai cách:

1- gốc thiết bị của bạn, sau đó mở thiết bị trong adb window command, và sau đó chạy như sau:

adb shell > 
su > 
pm disable com.android.systemui > 

và để nhận lại, chỉ cần thực hiện tương tự nhưng thay đổi disable thành enable.

2- thêm dòng sau vào cuối build.prop tập tin thiết bị của bạn:

qemu.hw.mainkeys = 1 

sau đó để lấy lại chỉ cần loại bỏ nó.

và nếu bạn không biết làm thế nào để chỉnh sửa build.prop file:

  • tải EsExplorer trên thiết bị của bạn và tìm kiếm build.prop sau đó thay đổi nó cho phép đọc và viết, cuối cùng thêm hàng.
  • tải xuống ứng dụng trình soạn thảo chuyên biệt build.prop như build.propEditor.
  • hoặc tham khảo that link.
+0

giải pháp này cần gốc thiết bị! và điều đó là không thể đối với tôi! để đi và root hoặc cài đặt bất kỳ ứng dụng nào khác vào thiết bị của khách hàng! vì vậy điều này không giải quyết được vấn đề của tôi! – Hamad

+0

@ Hamad tốt, cảm ơn bạn đã trả lời ur, nhưng tôi nghĩ bạn sẽ không tìm được giải pháp như bạn muốn mà không định tuyến ngay cả trong KitKat có cái gì đó gọi là immerse nhưng khi ghi main_layout chúng xuất hiện sau đó giữ khoảng 3 giây. –

0

Phiên bản Android: 4.2.2 - Thiết bị: Vega Tablet

Ứng dụng Android để Ẩn trạng thái và thanh hệ thống và hiển thị màn hình hoàn chỉnh Tôi đã làm theo các bước sau.

AndroidManifest.xml

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

MainActivity.java

super.onCreate(savedInstanceState); 
getWindow().getDecorView().setSystemUiVisibility(0x10); 
setContentView(R.layout.activity_main); 

Trên đang hoàn toàn làm việc cho ứng dụng của tôi.

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