android全屏显示方法
来源:互联网 发布:剑三菊花插件数据下载 编辑:程序博客网 时间:2024/05/25 08:14
这里的全屏显示指的是消除Activity的标题栏和系统的的状态栏。总结下,可以有三种方式实现,不过也有些地方值得注意,下面分别对每种方式及其使用存在的问题进行阐述。
方法一:编程实现
在java程序中添加以下代码:
- this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);this.requestWindowFeature(Window.FEATURE_NO_TITLE);
两个问题需要注意:
1、添加时机:在需要全屏显示的activity的界面显示函数setContentView( )调用前进行设置,否则报以下错误:
- E/AndroidRuntime( 479): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
- E/AndroidRuntime( 479): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
- E/AndroidRuntime( 479): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
- E/AndroidRuntime( 479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
- E/AndroidRuntime( 479): at android.os.Handler.dispatchMessage(Handler.java:99)
- E/AndroidRuntime( 479): at android.os.Looper.loop(Looper.java:123)
- E/AndroidRuntime( 479): at android.app.ActivityThread.main(ActivityThread.java:3683)
- E/AndroidRuntime( 479): at java.lang.reflect.Method.invokeNative(Native Method)
- E/AndroidRuntime( 479): at java.lang.reflect.Method.invoke(Method.java:507)
- E/AndroidRuntime( 479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
- E/AndroidRuntime( 479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
- E/AndroidRuntime( 479): at dalvik.system.NativeStart.main(Native Method)
- E/AndroidRuntime( 479): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
- E/AndroidRuntime( 479): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:181)
- E/AndroidRuntime( 479): at android.app.Activity.requestWindowFeature(Activity.java:2729)
- E/AndroidRuntime( 479): at XXXActivity.onCreate(IHomeActivity.java:16)
- E/AndroidRuntime( 479): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
- E/AndroidRuntime( 479): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
- E/AndroidRuntime( 479): ... 11 more
E/AndroidRuntime( 479): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)E/AndroidRuntime( 479): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)E/AndroidRuntime( 479): at android.app.ActivityThread.access$1500(ActivityThread.java:117)E/AndroidRuntime( 479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)E/AndroidRuntime( 479): at android.os.Handler.dispatchMessage(Handler.java:99)E/AndroidRuntime( 479): at android.os.Looper.loop(Looper.java:123)E/AndroidRuntime( 479): at android.app.ActivityThread.main(ActivityThread.java:3683)E/AndroidRuntime( 479): at java.lang.reflect.Method.invokeNative(Native Method)E/AndroidRuntime( 479): at java.lang.reflect.Method.invoke(Method.java:507)E/AndroidRuntime( 479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)E/AndroidRuntime( 479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)E/AndroidRuntime( 479): at dalvik.system.NativeStart.main(Native Method)E/AndroidRuntime( 479): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding contentE/AndroidRuntime( 479): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:181)E/AndroidRuntime( 479): at android.app.Activity.requestWindowFeature(Activity.java:2729)E/AndroidRuntime( 479): at XXXActivity.onCreate(IHomeActivity.java:16)E/AndroidRuntime( 479): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)E/AndroidRuntime( 479): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)E/AndroidRuntime( 479): ... 11 more2、存在问题:这种方法可以达到全屏显示效果,但activity的标题栏会有短暂的停留,看起来很不爽
方法二:通过XML文件进行配置
在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主题:
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"这种方法堪称完美,简单而且没有方法一中存在的那些问题,推荐使用!
方法三:组合拳,编码和xml配置同时使用
这种方法是在方法一的基础上改进而来。具体做法是:
1)、按照方法一添加代码到java中
2)、在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主题:
- android:theme="@android:style/Theme.NoTitleBar"
android:theme="@android:style/Theme.NoTitleBar"这种方法可以实现同方法二一样的i效果。本质上来说,就是通过在xml文件中添加相应的配置来消除方法一中的问题2来实现的。
- android全屏显示方法
- Android 全屏显示的方法
- Android设置全屏显示方法
- Android应用程序全屏显示的方法
- Android应用程序全屏显示的方法
- Android实现全屏显示的方法
- Android 全屏显示的两种方法
- 【转】Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android一种欢迎界面全屏显示方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- Android实现全屏显示的方法
- 手机正则表达式验证
- cortex-A8 ARM核 opencv程序移植
- 《规范敏捷交付:企业级敏捷软件交付方法与实践》迷你书
- 【WIN7系统不是万能滴】
- SharedPreferences共享优先存储的详细解析和原理
- android全屏显示方法
- 如何单独编译Android源代码中的模块
- 架构设计之设计模式 (三) 策略模式+装饰模式+反射(java)
- #pragma
- Qt文件操作总结
- Android(Java):LayoutInflater
- 移动互联网的创新与91生态
- UICollectionView
- myeclipse 修改高亮显示焦点所在变量颜色