`
007007jing
  • 浏览: 42750 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

android2.3 api demo 学习系列(14)--App/Activity/Screen Orientation

阅读更多

下面我们来学习下Screen Orientaiton的demo。

1、首先我们在values下面新建文件arrays.xml(用来在下拉列表中显示)

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <!-- Used in app/Screen Orientation -->
    <string-array name="screen_orientations"
        <item>UNSPECIFIED</item>
        <item>LANDSCAPE</item>
        <item>PORTRAIT</item>
        <item>USER</item>
        <item>BEHIND</item>
        <item>SENSOR</item>
        <item>NOSENSOR</item>
        <item>SENSOR_LANDSCAPE</item>
        <item>SENSOR_PORTRAIT</item>
        <item>REVERSE_LANDSCAPE</item>
        <item>REVERSE_PORTRAIT</item>
        <item>FULL_SENSOR</item>
    </string-array>
</resources>

 

 2、我们在代码中定义相对应数组

 

 final static int mOrientationValues[] = new int[] {
        ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED,
        ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE,
        ActivityInfo.SCREEN_ORIENTATION_PORTRAIT,
        ActivityInfo.SCREEN_ORIENTATION_USER,
        ActivityInfo.SCREEN_ORIENTATION_BEHIND,
        ActivityInfo.SCREEN_ORIENTATION_SENSOR,
        ActivityInfo.SCREEN_ORIENTATION_NOSENSOR,
        ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
        ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT,
        ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE,
        ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT,
        ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR,
    };

 

 3、处理用户选择

 

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.app_activity_screen_orientation);
        
        mOrientation = (Spinner)findViewById(R.id.app_activity_screen_orientation);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.screen_orientations, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mOrientation.setAdapter(adapter);
        mOrientation.setOnItemSelectedListener(
                new OnItemSelectedListener() {
                    public void onItemSelected(
                            AdapterView<?> parent, View view, int position, long id) {
                        setRequestedOrientation(mOrientationValues[position]);
                    }

                    public void onNothingSelected(AdapterView<?> parent) {
                        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
                    }
                });
    }

 效果图:



 

相关方法:

createFromResource()方法创建一个新的 ArrayAdapter, 定义了数组中得每一项如何显示在下来列表上.  setDropDownViewResource(int)定义了下拉列表展开时每一项如何显示.

AdapterView.OnItemSelectedListener 要求必须有 onItemSelected() 和onNothingSelected() 两个回调方法.根据其方面名我们就可以了解其用途。

 

 

public void setRequestedOrientation (int requestedOrientation)

改变activity的方向. 如果activity正在显示,则改变会立刻生效 (有可能导致activity重起). 否则改变会在activity下次可见的时候生效。

参数requestedOrientation可选值:

SCREEN_ORIENTATION_UNSPECIFIED,SCREEN_ORIENTATION_LANDSCAPESCREEN_ORIENTATION_PORTRAIT

SCREEN_ORIENTATION_USERSCREEN_ORIENTATION_BEHINDSCREEN_ORIENTATION_SENSOR,

SCREEN_ORIENTATION_NOSENSORSCREEN_ORIENTATION_SENSOR_LANDSCAPE

SCREEN_ORIENTATION_SENSOR_PORTRAITSCREEN_ORIENTATION_REVERSE_LANDSCAPE,

SCREEN_ORIENTATION_REVERSE_PORTRAITSCREEN_ORIENTATION_FULL_SENSOR.


.

 

 

  • 大小: 34.1 KB
  • 大小: 33.9 KB
分享到:
评论

相关推荐

    Android引导页Demo(第一次进入应用时加载)

    在Android应用开发中,引导页(Splash Screen)通常用于在用户首次打开应用时展示品牌形象、功能介绍或新特性,提供良好的用户体验。这个"Android引导页Demo(第一次进入应用时加载)"是一个实例,帮助开发者了解...

    android 调用微信扫一扫(调用微信.so实现)

    android:configChanges="orientation|screenSize" android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.Light.NoActionBar" /&gt; ``` 这里的`ScanWXCodeActivity`是微信SDK提供的扫码...

    安卓Andriod源码——Activity实现透明的最简洁Demo.zip

    本Demo主要展示了如何通过简单的代码实现Android Activity的透明化。 首先,我们了解透明Activity的基本原理。在Android中,Activity的背景颜色默认为白色,但通过修改主题(Theme)或者直接在布局文件中设置背景色...

    android qq第三方登录 demo

    android:configChanges="orientation|screenSize" android:noHistory="true" /&gt; ``` 现在,你可以初始化QQ SDK并设置登录回调。在你的Activity或Application类中,调用`Tencent.createInstance()`方法: ```java...

    android接入穿山甲广告.zip

    android:configChanges="orientation|screenSize" android:theme="@style/Theme.AppCompat.Translucent.NoTitleBar.Fullscreen" /&gt; ``` 接着,我们需要在Cocos2d-x的Java层创建广告的实例,并调用相应的接口加载...

    android 应用分享微信和微信朋友圈

    android:configChanges="keyboardHidden|orientation|screenSize" /&gt; ``` 3. **初始化微信SDK**: 在应用的主Activity的`onCreate()`方法中,初始化微信SDK: ```java WXApi wxApi = WXApiFactory.createWXApi...

    Android最简单的欢迎界面

    在Android应用开发中,创建一个欢迎界面(Splash Screen)是常见的做法,用于展示品牌标识、加载应用程序资源或者执行一些初始化操作。"Android最简单的欢迎界面"这个标题所指的,就是一个基本的Android欢迎界面示例...

    微信Tinker集成 测试demo 简单易懂

    android:configChanges="keyboardHidden|orientation|screenSize" android:exported="false"&gt; &lt;intent-filter&gt; &lt;action android:name="android.intent.action.PATCH_UPDATE" /&gt; &lt;category android:name=...

    安卓开发-微信分享Demo.zip.zip

    android:configChanges="keyboardHidden|orientation|screenSize" /&gt; ``` 配置完成后,需要初始化微信SDK。在应用程序的Application类中,调用`WXApi.registerApp()`方法,传入之前获取的AppID: ```java public ...

    透明与窗体的设置

    **参考资料**:API Demo中提供了另一种实现透明效果的方法,不依赖于内置主题,而是通过完全自定义的方式实现,这种方法还可以添加其他特效如模糊化等,但具体实现细节需根据实际情况探索。 ### 总结 通过上述介绍...

Global site tag (gtag.js) - Google Analytics