获取屏幕方向
Configuration newConfig = getResources().getConfiguration();
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
//横屏
}else if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//竖屏
}else if(newConfig.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_NO){
//键盘没关闭。屏幕方向为横屏
}else if(newConfig.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES){
//键盘关闭。屏幕方向为竖屏
}
横竖屏切换问题
很多没有购买真机的网友不知道如何切换 Android
模拟器到横屏显示。常规的显示为HVGA-P(port),即分
辨率为320x480
如果使用横屏(land)。如果模拟器尚未启动,可以在Eclipse
的项目Run as=>Open Run
Dialog
对话框中设置,如果android
模拟器已经启动后,可以使用快捷键F12
或Ctrl+F11
或小键盘7、8
来切换。当然是用命令行仅仅启动模拟器可以使用参数emulator.exe -skin HVGA-L 来启动。
需要注意的是,切换land 或port 可以通过资源文件来让界面自适应窗体,但程序可能会重载onCreate,
避免的方法可以通过在androidmanifest.xml 文件中重新定义方向,以及根据Activity
的重写
onConfigurationChanged(Configuration newConfig)方法来控制,相关的可以在Android SDK
中获取到。
开发 游戏的时候,有些游戏是只能横屏玩的,所以手机竖立放置的时候,要保持游戏画面
依然横屏。要做到这个要求其实很简单,在AndroidManifest.xml 里面配置一下就可以了。
加入这一行android:screenOrientation="landscape"。
例如(landscape 是横向,portrait 是纵向):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" http://schemas.android.com/apk/res/android "
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activity android:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
另外,android 中每次屏幕的切换动会重启Activity,所以应该在Activity
销毁前保存当前活动的状态,在Activity 再次Create 的时候载入配置,那样,
进行中的游戏就不会自动重启了!
案例
package com.cn;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class LayoutTest extends Activity {
private static final String tag = "LayoutTest";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(tag, "********test********");
// LOGV("********test********");
if(this.getResources()
.getConfiguration()
.orientation == Configuration.ORIENTATION_LANDSCAPE){
Log.e(tag, "^^^^^^^^^^this is a landscape *************");
}
// TextView tx = (TextView)findViewById(R.id.txt);
// tx.setKeepScreenOn(true);
// if(this.getResources())
setContentView(R.layout.main);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
if(this.getResources()
.getConfiguration()
.orientation == Configuration.ORIENTATION_PORTRAIT){
Log.e(tag, "********this is a portrait");
}else if(this.getResources()
.getConfiguration()
.orientation == Configuration.ORIENTATION_LANDSCAPE){
Log.e(tag, "this is a landscape *************");
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" http://schemas.android.com/apk/res/android "
package="com.cn"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".LayoutTest"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden" >
<!-- android:screenOrientation="landscape">
-->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>

更多相关文章

  1. Mac OSX Android 开发环境 模拟器报错
  2. Android 内核源代码交叉编译(创建自己的模拟器内核,哈哈终于搞定
  3. :Android模拟器的基本操作
  4. 开发Android第二步,安装 java , apache ant, Eclipse 及在模拟器
  5. 安装APK文件到Android模拟器
  6. 如何同时启动两个Android模拟器

随机推荐

  1. 1.【商城后台管理系统】基于TP6开发后台
  2. PHP:【商城后台管理系统】部署管理员列表
  3. 酱茄plus多端小程序发布(圈子商城直播带货
  4. JS 函数的执行时机
  5. 3.【商城后台管理系统】基于TP6开发登陆
  6. 2.【商城后台管理系统】基于TP6开发后台
  7. 函数的要素
  8. parcle打包工具的一些资料链接
  9. setInterval这个api
  10. PHP:【商城后台管理系统】部署管理员一级