zoukankan      html  css  js  c++  java
  • Android开发之改动屏幕方向

    有的场景下,我们须要把手机屏幕方向改变,以下是我写的一个样例。

    xml页面文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:paddingBottom="@dimen/activity_vertical_margin"

        android:paddingLeft="@dimen/activity_horizontal_margin"

        android:paddingRight="@dimen/activity_horizontal_margin"

        android:paddingTop="@dimen/activity_vertical_margin"

        tools:context=".MainActivity" >


        <Button

            android:id="@+id/btn"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_alignParentLeft="true"

            android:layout_alignParentTop="true"

            android:text="改动屏幕方向" />


    </RelativeLayout>

    页面java文件:

    package com.example.chcfg;


    import android.os.Bundle;

    import android.app.Activity;

    import android.content.pm.ActivityInfo;

    import android.content.res.Configuration;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    import android.widget.Toast;


    public class MainActivity extends Activity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Button btn = (Button)findViewById(R.id.btn);

    btn.setOnClickListener(new OnClickListener() 

    {

    public void onClick(View source) {

    // TODO Auto-generated method stub

    Configuration config = getResources().getConfiguration();

    if(config.orientation == Configuration.ORIENTATION_LANDSCAPE)

    {

    //设置为竖屏

    MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    }

    //假设当前是竖屏

    if(config.orientation == Configuration.ORIENTATION_PORTRAIT)

    {

    MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    }

    }

    });

    }


    @Override

    public void onConfigurationChanged(Configuration newConfig) {

    // TODO Auto-generated method stub

    super.onConfigurationChanged(newConfig);

    String screen = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕" : "纵向屏幕";

    Toast.makeText(this, "系统屏幕方向发生改变 改动后的方向为:" + screen , Toast.LENGTH_LONG).show();

    }

    }

    MainFest xml文件:

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

    >

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

        package="com.example.chcfg"

        android:versionCode="1"

        android:versionName="1.0" >


        <uses-sdk

            android:minSdkVersion="8"

            android:targetSdkVersion="18" />


        <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>

        <application

            android:allowBackup="true"

            android:icon="@drawable/ic_launcher"

            android:label="@string/app_name"

            android:theme="@style/AppTheme" >

            <activity

                android:name="com.example.chcfg.MainActivity"

                android:label="@string/app_name"

                android:configChanges="orientation">

                <intent-filter>

                    <action android:name="android.intent.action.MAIN" />


                    <category android:name="android.intent.category.LAUNCHER" />

                </intent-filter>

            </activity>

        </application>


    </manifest>

    个人辛勤劳动成果,如有转载。请注明出处。谢谢。

  • 相关阅读:
    Laxcus集群操作系统的分布计算模型
    LAXCUS集群操作系统能不能防止DDOS攻击
    elasticsearch安装启动过程遇到的问题
    Centos7安装snort可视化IDS平台
    网络与信息安全 -国际学术会议和期刊目录
    包的概念、导入与可见性---Go
    Encrypted Traffic Analytics 加密流量分析功能
    商务谈判技巧
    东南大学《数字图像处理》课程作业 8
    东南大学《数字图像处理》课程作业 7
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6979402.html
Copyright © 2011-2022 走看看