Android Activity始终横屏、全屏、屏幕方向改变等屏幕相关

android手机屏幕方向改变的时可以使应用程序随之相应改变,这里就简单介绍屏幕操作中的一点小技巧。包括始终横(竖)屏、全屏、屏幕方向改变时销毁Activity的问题。

 

1、屏幕始终横屏或竖屏

对于一些游戏,可能我们希望屏幕始终横屏,这时只需要在AndroidManifest.xml中对Activity属性进行设置

android:screenOrientation="landscape"表示始终横屏,

android:screenOrientation="portrait"表示始终竖屏,下面是始终横屏的例子

Java代码   收藏代码
  1. <activity android:name="ViewStatusDetailActivity"  
  2.     android:screenOrientation="landscape"  
  3.         android:label="@string/app_name">  
  4.         </activity>  

android:screenOrientation的其他值见screenOrientation

 

2、Activity全屏

两种配置方式,

一种是在AndroidManifest.xml中对Activity属性进行设置,如下:

Java代码   收藏代码
  1. <activity android:name="ViewStatusDetailActivity"  
  2.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
  3.     android:label="@string/app_name">  
  4.     </activity>  

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"表示全屏该Activity

 

第二种是在代码中进行设置

Java代码   收藏代码
  1. public void onCreate(Bundle savedInstanceState) {   
  2.     super.onCreate(savedInstanceState);   
  3.     //无title     
  4.     requestWindowFeature(Window.FEATURE_NO_TITLE);     
  5.     //全屏     
  6.     getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,       
  7.         WindowManager.LayoutParams. FLAG_FULLSCREEN);            
  8.     setContentView(R.layout.main);   
  9.     }   
  10. }   

 其中requestWindowFeature和getWindow().setFlags必须一起使用,并且在setContentView前面

 

 

3、解决屏幕方向改变Activity销毁重建问题

当屏幕方向改变时,经常发现刚输入的文字被清空了、imageView图片不存在了,或是网络数据重新获取,其实是Activity会被销毁,重新调用OnCreate构建,如何防止这种情况呢,分为两步:

3.1 在AndroidManifest.xml中对Activity属性进行设置,如下:

Xml代码   收藏代码
  1. <activity android:name="ViewStatusActivity"  
  2.                   android:configChanges="orientation|keyboardHidden"  
  3.                   android:label="@string/app_name"  
  4.                   android:theme ="@style/update_status_style">  
  5.         </activity>  

android:configChanges="orientation|keyboardHidden"表示改变界面方向和隐藏键盘

具体android:configChanges见configChanges

 

 

3.2 重载onConfigurationChanged方法,此方法会在屏幕方向改变时被调用如下:

Java代码   收藏代码
  1. @Override  
  2. public void onConfigurationChanged(Configuration newConfig) {  
  3.   
  4.     super.onConfigurationChanged(newConfig);  
  5.   
  6.     if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {  
  7.         // 加入横屏要处理的代码  
  8.     } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {  
  9.         // 加入竖屏要处理的代码  
  10.     }  
  11. }  

 

参考:http://ghostfromheaven.iteye.com/blog/967629

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值