Android
 Computer >> コンピューター >  >> プログラミング >> Android

プログラムですべてのAndroidデバイスの画面の向きをロックする方法

はじめに

この記事では、プログラムによってすべてのAndroidデバイスで画面の向きをロックする方法を解説します。デバイスが縦向きのときは縦向きに、横向きのときは横向きに固定する実装を、具体的なコード例とともに紹介します。

ステップ1:新規プロジェクトの作成

Android Studioで「File」⇒「New Project」を選択し、必要な項目をすべて入力して新しいプロジェクトを作成します。

ステップ2:レイアウトファイル(activity_main.xml)の編集

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Screen Orientation Lock"
        android:textSize="24sp"
        android:textStyle="bold"/>
</RelativeLayout>

ステップ3:MainActivity.java の編集

src/MainActivity.java に以下のコードを追加します。getResources().getConfiguration().orientation で現在の画面の向きを取得し、setRequestedOrientation() メソッドでその向きに固定しています。

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int currentOrientation = getResources().getConfiguration().orientation;
        if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
}

補足: 新しく作成するプロジェクトではAndroidXが標準で使用されるため、import文は androidx.appcompat.app.AppCompatActivity となります。古いサポートライブラリを使用している既存プロジェクトでは、上記のコードのままで動作します。

ステップ4:AndroidManifest.xml の編集

androidManifest.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

アプリの実行と動作確認

それでは、アプリケーションを実行してみましょう。実際のAndroid端末がパソコンに接続されているものとします。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルのいずれかを開き、ツールバーの「Run」アイコンをクリックします。実行デバイスとして自分のモバイルデバイスを選択すると、端末にデフォルト画面が表示されます。

プログラムですべてのAndroidデバイスの画面の向きをロックする方法

まとめ

Configuration クラスで現在の向きを判定し、setRequestedOrientation() メソッドを呼び出すことで、すべてのAndroidデバイスで画面の向きをプログラム的にロックできます。この手法により、デバイスの回転による画面の再構成(Activityの再生成)を防ぎ、安定したユーザー体験を実現できます。

  1. Androidのロック画面で通知を非表示にする方法【機種別設定手順】

    ロック画面で通知をチェックできるのはとても便利です。内容をひと目で確認でき、その通知が重要なものかどうか、スマホのロックを解除する価値があるかどうかを判断できます。 しかし一方で、ロック画面に通知内容がそのまま表示されるということは、意図せず個人情報を周囲の人に見られてしまうリスクも伴います。メッセージの内容やアプリの通知詳細は、他人に知られるべきものではありません。そこで本記事では、Androidのロック画面から通知を非表示にする方法を詳しく解説します。root化は不要で、設定も思ったより簡単です。 ロック画面のすべての通知を非表示にする方法 Android端末のロック画面から機密性の高い

  2. Androidのロック画面をカスタマイズする方法|ロック方式・壁紙・通知設定を徹底解説

    Androidスマートフォンが世界中のユーザーに支持されている理由のひとつに、自由度の高いカスタマイズ性が挙げられます。アプリドロワー、通知パネル、ランチャーなど、好みに合わせてさまざまな要素を変更できるのが魅力です。 ところが、意外と見落とされがちなのが「ロック画面」の存在です。ロック画面とは、電源を入れたときに最初に表示される画面であり、その名の通り、スマートフォンを使う前に解除が必要となる画面のことです。 Androidのロック画面には、日常の利便性を高めるための多彩なオプションが用意されています。本記事では、ぜひ試していただきたいカスタマイズ方法をわかりやすくご紹介します。 ロッ