From bf895af17d26ca2906feae88007c8bff3903fc63 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Sat, 2 Oct 2010 16:56:56 -0700 Subject: [PATCH] New API demo showing different screen orientation options. Change-Id: I75b206f86ee87b50cccc5e23140d55bd566781cd --- samples/ApiDemos/AndroidManifest.xml | 8 ++ .../res/layout/screen_orientation.xml | 37 ++++++++++ samples/ApiDemos/res/values/arrays.xml | 16 ++++ samples/ApiDemos/res/values/strings.xml | 6 ++ .../android/apis/app/ScreenOrientation.java | 73 +++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 samples/ApiDemos/res/layout/screen_orientation.xml create mode 100644 samples/ApiDemos/src/com/example/android/apis/app/ScreenOrientation.java 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); + } + }); + } +}