android横竖屏切换不重启activity解决方案

2016-02-19 11:32 43 1 收藏

下面图老师小编要跟大家分享android横竖屏切换不重启activity解决方案,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】

部分网友会发现Activity在切换到后台或布局从横屏LANDSCAPE切换到PORTRAIT,会重新切换Activity会触发一次onCreate方法,我们可以在androidmanifest.xml中的activit元素加入这个属性Android:configChanges="orientation|keyboardHidden" 即可,比如
activity android:name=".android123" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name"
Java代码
代码如下:

/* 声明Display对象,以取得屏幕宽高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();

intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();

/* 如果为Landscape */
if (intScreenW intScreenH)
{
/* Landscape = Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait = Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
/* 声明Display对象,以取得屏幕宽高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();
intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();
/* 如果为Landscape */
if (intScreenW intScreenH)
{
/* Landscape = Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait = Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

同时在Activity的Java文件中重载onConfigurationChanged(Configuration newConfig)这个方法,这样就不会在布局切换或窗口切换时重载onCreate等方法。代码如下:
Java代码
代码如下:

@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}

来源:http://www.tulaoshi.com/n/20160219/1597827.html

延伸阅读
最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下! Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的操作方法。 保存参数时: 代码如下: Intent intent = new Intent(); intent.setClass(A.this, B.class); Bundle bundle =...
目前移动设备中的都会内置加速计,这个装置使得移动设备可以根据摆放的方向进行屏幕的横竖屏切换,令移动应用有了更多展现的功能和使用的方式。 本文中列举了一些对横竖屏设计中可能遇见的设计难点及解决的方案、 眼下,智能移动设备内置的加速计的主要作用,就是根据设备的定向方式来决定屏幕的显示模式,也就是在横屏或竖屏模式之间进行切...
计算系统与信息网络不停顿的运行与连接即高可用性已成为各行业特别是要求实时行业业务运行的基本要求。 惠普凭借丰富的经验创制的HP NetServer为您提供当今市场上最完备的高可用性系列产品和最优质的服务,使您的关键业务应用程序能连续可靠地高效运转。惠普还与业界领先的软硬件供应商联袂,为优化您的业务环境提供最...
Vista升级win7系统出现无限重启的解决方案   用户想要从Vista升级到Windows7时,安装程序可能会提示如下错误: This version of Windows could not be installed, Your previous version of Windows has been restored, and you can continue to use it." 解决方法: 1、首先放入Windows Vista安装光盘,然...
当您将数据库备份恢复到另一台服务器时,可能会遇到孤立用户的问题。SQL Server 联机丛书中的孤立用户疑难解答主题中没有讲述解决此问题的具体步骤。 本文介绍了如何解决孤立用户问题。 状态 Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。 更多信息 虽然术语“登录”和“用户”经常交换...

经验教程

677

收藏

99
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部