diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index aff0373d1..816326591 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -207,6 +207,14 @@
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/layout/screen_orientation.xml b/samples/ApiDemos/res/layout/screen_orientation.xml
new file mode 100644
index 000000000..b5943e260
--- /dev/null
+++ b/samples/ApiDemos/res/layout/screen_orientation.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/values/arrays.xml b/samples/ApiDemos/res/values/arrays.xml
index fb309a888..29c9d2e93 100644
--- a/samples/ApiDemos/res/values/arrays.xml
+++ b/samples/ApiDemos/res/values/arrays.xml
@@ -94,6 +94,22 @@
- Alphanumeric
+
+
+ - UNSPECIFIED
+ - LANDSCAPE
+ - PORTRAIT
+ - USER
+ - BEHIND
+ - SENSOR
+ - NOSENSOR
+ - SENSOR_LANDSCAPE
+ - SENSOR_PORTRAIT
+ - REVERSE_LANDSCAPE
+ - REVERSE_PORTRAIT
+ - FULL_SENSOR
+
+
- *bzzt*\nTransferred $1,000,000 to J. Phisher. Thank you!
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 1649a9232..949e91a94 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -44,6 +44,12 @@
Set Wallpaper
Randomize
+ App/Activity/Screen Orientation
+ Demonstrates the available screen
+ orientation modes. Often you want to set the desired mode in your manifest
+ instead of programmatically.
+ Screen Orientation
+
App/Activity/Translucent
Example of how you can make an
activity have a translucent background, compositing over
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ScreenOrientation.java b/samples/ApiDemos/src/com/example/android/apis/app/ScreenOrientation.java
new file mode 100644
index 000000000..3946b2a9b
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ScreenOrientation.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.app;
+
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
+import android.content.pm.ActivityInfo;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
+import android.widget.AdapterView.OnItemSelectedListener;
+
+public class ScreenOrientation extends Activity {
+ Spinner mOrientation;
+
+ // Orientation spinner choices
+ // This list must match the list found in samples/ApiDemos/res/values/arrays.xml
+ 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,
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.screen_orientation);
+
+ mOrientation = (Spinner)findViewById(R.id.orientation);
+ ArrayAdapter 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);
+ }
+ });
+ }
+}