Полноэкранный в windowmanager
Это мой код:
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mTopView = (ViewGroup) inflater.inflate(
R.layout.activity_invisible, null);
params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_DIM_BEHIND
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_FULLSCREEN;
if(keep==true){
int value = brightnessIntent.getExtras().getInt("value");
float v=value/255.0f;
params.dimAmount=0;
params.alpha=v;
rl = (RelativeLayout) mTopView.findViewById(R.id.window);
getWindow().setAttributes(params);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
wm.addView(mTopView, params);
}
в представлении по-прежнему отображается строка состояния,mTopView
окно оверлея. Как сделать всплывающее окно на весь экран? Я не хочу" скрывать " строку состояния, я хочу, чтобы моя активность накладывалась на нее.
[EDIT]выделенный текст
У меня уже есть это в моем onCreate()
способ:
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
и мой манифест определяет стиль, особенности полноэкранный.
скриншоты
вот как это в настоящее время, я хочу, чтобы наложение также распространялось на строку состояния.
6 ответов
все, что мне нужно было сделать, это
params.flags=WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| and the rest
это расширяет представление наложения на строку состояния.
этот код из "Android Application 4 Development". вы должны обрабатывать различные версии android
// Hiding the Action Bar for different android versions
if (Build.VERSION.SDK_INT < 16) {
// Hide the Action Bar on Android 4.0 and Lower
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}else {
// Hide the Action Bar on Android 4.1 and Higher
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
android.app.ActionBar actionBar = getActionBar();
actionBar.hide();
}
вы можете скрыть строку состояния двумя способами:
1) Определите под линией в вашей деятельности onCreate()
метод.
requestWindowFeature(Window.FEATURE_NO_TITLE);
2) Определите тему на уровне приложения, чтобы не показывать строку состояния через приложение, как показано ниже:
<application android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
попробуйте это..
requestWindowFeature(Window.FEATURE_NO_TITLE);
он не будет скрывать строку состояния, ваше приложение будет охватывать весь экран только строка состояния будет видна
public class example extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.example);
}
}
и скрыть строку состояния
можно использовать
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
попробуй так
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
ViewGroup mTopView = (ViewGroup) App.inflater.inflate(R.layout.main, null);
getWindow().setAttributes(params);
wm.addView(mTopView, params);
чтобы создать всегда топ полноэкранный оверлей активность в Android:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.main);
}
полупрозрачная настройка должна быть включена извне в XML-манифесте, иначе она также не работает.
<item name="android:windowIsTranslucent">true</item>
Вы можете скрыть строку заголовка с помощью:
public class MainActivity расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
}
}
и получить полный экран с помощью:
public class MainActivity расширяет AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}
}
а также вы можете использовать
родитель= " тема.Совместимости приложений.NoActionBar"
по стилю.в XML