本文实例讲述了Android改变手机屏幕朝向的方法。分享给大家供大家参考。具体如下:

模拟当点击按钮时,使手机朝向发生改变。

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>  

清单文件:

<?xml version="1.0" encoding="utf-8"?>                                                

OrientationActivity类:

package com.ljq.activity;import android.app.Activity;import android.content.pm.ActivityInfo;import android.content.res.Configuration;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class OrientationActivity extends Activity {  private EditText editText=null;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    editText=(EditText)findViewById(R.id.editText);    Button btn=(Button)findViewById(R.id.btn);    btn.setOnClickListener(new View.OnClickListener(){      public void onClick(View v) {        //判断是否可以获得requestedOrientation属性        if(OrientationActivity.this.getRequestedOrientation()==-1){          Toast.makeText(OrientationActivity.this, "系统的朝向无法获取", Toast.LENGTH_LONG).show();        }else{          //手机屏幕的朝向有7个可选值,分别如下          //SCREEN_ORIENTATION_BEHIND: 继承Activity堆栈中当前Activity下面的那个Activity的方向          //SCREEN_ORIENTATION_LANDSCAPE: 横屏(风景照) ,显示时宽度大于高度           //SCREEN_ORIENTATION_PORTRAIT: 竖屏 (肖像照) , 显示时高度大于宽度           //SCREEN_ORIENTATION_NOSENSOR: 忽略物理感应器――即显示方向与物理感应器无关,          //不管用户如何旋转设备显示方向都不会随着改变("unspecified"设置除外)          //SCREEN_ORIENTATION_SENSOR: 由物理感应器决定显示方向,它取决于用户如何持有设备,          //当设备被旋转时方向会随之变化――在横屏与竖屏之间          //SCREEN_ORIENTATION_UNSPECIFIED: 未指定,此为默认值,由Android系统自己选择适当的方向,          //选择策略视具体设备的配置情况而定,因此不同的设备会有不同的方向选择          //SCREEN_ORIENTATION_USER: 用户当前的首选方向          if(OrientationActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){            OrientationActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);          }else if(OrientationActivity.this.getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){            OrientationActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);          }        }      }    });  }  /**   * 配置信息发生改变时触发   */  @Override  public void onConfigurationChanged(Configuration newConfig) {    Toast.makeText(this, "系统的屏幕方向发生改变", Toast.LENGTH_LONG).show();    int o=getRequestedOrientation();//获取手机的朝向    switch (o) {    case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:      editText.setText("当前屏幕朝向为: 横屏");      break;    case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:      editText.setText("当前屏幕朝向为: 竖屏");      break;    }    //不能省略,否则会报android.app.SuperNotCalledException: Activity OrientationActivity did not    //call through to super.onConfigurationChanged()异常    super.onConfigurationChanged(newConfig);  }}

运行结果:

希望本文所述对大家的Android程序设计有所帮助。

更多相关文章

  1. Android(安卓)屏幕旋转操作Demo
  2. Android官方技术文档翻译——Apk 拆分机制
  3. android中dip、dp、px、sp和屏幕密度
  4. android 屏幕保护
  5. Android(安卓)webview加载富文本 屏幕简单适配
  6. android之全屏沉浸模式(强制屏幕为全面屏)
  7. Android(安卓)8.0 Navigationbar
  8. android 图片查看器,可通过多点触控实现缩放
  9. Android之根据手机屏幕分辨率(px与dp互换)

随机推荐

  1. android滑动事件监听
  2. android支付之银联支付
  3. Android(安卓)项目如何获取MD5和SHA1
  4. Android中广播的基本原理
  5. android jni入门基础
  6. 一个简单的手电筒APP源码分享(支持Android
  7. Android(安卓)Bitmap详解
  8. Android(安卓)View的onClick回调机制
  9. Android(安卓)动态创建Drawable selector
  10. 环形进度条简单实现