Site icon Mobilhanem

Android Screen Orientation

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Android Screen Orientation ile devam ediyoruz. Nedir bu Screen Orientation kavramı ,ne işe yarar şimdi incelemeye başlayalım.

Screen Orientation da uygulamamızın farklı ekran yönlendirme seçeneklerine ne şekilde tepki vereceğinizi belirleyebiliriz. İlgili Activity sayfamıza ekran yönlendirmesini AndroidManifest.xml den yapabiliriz. Şimdi yönlendirme seçeneklerini inceleyelim.

Örnek olması açısından Android Studio da bir örnek oluşturuyoruz. MainActivity sınıfımızın xml layout kısmı aşağıdaki gibidir.

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:background="#cccc"
        android:layout_centerInParent="true"
        android:textColor="#000"
        android:text="Screen Orientation" />
</RelativeLayout>

Android Screen Orientation Türleri

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini portrait olarak belirledik bu şekilde xml layout dizaynı hep dikey şekilde gözükecektir. Ekran yan çevirilse dahi görüntü değişmeyecektir.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Ekran çıktısı:

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini landscape olarak belirledik bu şekilde xml layout dizaynı hep yatay şekilde gözükecektir.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Ekran çıktısı:

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini userPortrait olarak belirledik bu şekilde xml layout dizaynı ekranı sadece 180° çevirdiğiniz kadar dönecektir. Api Level 18 ile birlikte kullanılmaya başlandı.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="userPortrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Ekran çıktısı:

ilk çalıştığı anda ekran görüntüsü

180°  ekranı çevirdiğimizde ekran görüntüsü

 

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini reversePortrait olarak belirledik bu şekilde xml layout dizaynı Portrait ekran yönlendirmesinin tam tersi olarak çalışmaktadır.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="reversePortrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Ekran çıktısı:

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini reverseLandscape olarak belirledik bu şekilde xml layout dizaynı landscape ekran yönlendirmesinin tam tersi olarak çalışmaktadır.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="reverseLandscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

 

 

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini unspecified olarak belirledik bu şekilde xml layout dizaynı default olarak bir ekran yönlendirme değeri alır yani sistem yönü kendi seçer. Android cihazlar arası farklılık gösterebilir.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="unspecified">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini sensor olarak belirledik bu şekilde xml layout dizaynı  kullanıcının cihazı nasıl tuttuğuna bağlı olarak değişir. Cihazın sensörü tarafından da bu haraket yönü belirlenir. Fakat bazı cihazlar 4 yönü de desteklemeyebilir işte o zaman fullSensor kullanmak gerekir.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="sensor">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

Aşağıdaki kod yapısına baktığımızda MainActivity sınıfının ekran yönlendirmesini fullSensor olarak belirledik bu şekilde xml layout dizaynı cihazın 4 yöne de haraketi destekler. Bazı cihazlar reversePortrait ve reverseLandscape olarak kullanılmaya çalışıldığında o yönlendirme haraketlerini desteklemeyebilir fakat fullSensor kullanırsanız bahsettiğim gibi bütün haraket yönlerini desteklemiş olursunuz.

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mobilhanem.screenorientation">

    <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="com.mobilhanem.screenorientation.MainActivity" android:screenOrientation="fullSensor">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

Gördüğünüz gibi bir çok ekran yönlendirme özelliği mevcut fakat özellikle sensor başta olmak üzere bir çoğu oyun geliştirme de kullanılmaktadır, mobil uygulama geliştirirken daha çok portrait ve landscape tercih edilmektedir.

Evet arkadaşlar Android Screen Orientation aşamalarını sizlere detaylıca anlatmaya çalıştım. Ekran yönlendirmeleri çoğu zaman kullandığımız fakat daha detayına girip incelemediğimiz bir konu. Umarım hepiniz için faydalı olmuştur.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.

Bir daha ki dersimizde görüşmek dileğiyle..

2
Exit mobile version