Kullanıcı cihazı döndürdüğünde yönünün yatay moda geçmesini istemediğim bir Android uygulaması geliştiriyorum. Ayrıca, kilitli yönün telefonlarda dikey mod ve tabletlerde yatay mod olmasını istiyorum. Bu başarılabilir mi, evetse nasıl? Teşekkürler.
Kullanıcı cihazı döndürdüğünde yönünün yatay moda geçmesini istemediğim bir Android uygulaması geliştiriyorum. Ayrıca, kilitli yönün telefonlarda dikey mod ve tabletlerde yatay mod olmasını istiyorum. Bu başarılabilir mi, evetse nasıl? Teşekkürler.
Yanıtlar:
Dosyanızdaki etkinlik öğesinin içinde aşağıdaki özelliği tanımlamanız yeterlidir AndroidManifest.xml. Oryantasyonunuzu portre ile sınırlayacaktır.
android: screenOrientation = "portre"
Misal:
<activity
android:name="com.example.demo_spinner.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
Bunun tüm uygulamaya uygulanmasını istiyorsanız, aşağıdaki özelliği uygulama etiketinin içinde şu şekilde tanımlayın:
<application>
android:screenOrientation="sensorPortrait"
</application>
Ek olarak, Eduard Luca'nın aşağıdaki yorumuna screenOrientation="sensorPortrait"göre, 180 derece döndürmeyi etkinleştirmek istiyorsanız da kullanabilirsiniz .
sensorPortraitkullanıcının ekranı 180 derece döndürebilmesini istiyorsanız :)
Sen eklemek zorunda android:screenOrientation="portrait"Gözlerinde farklı yönergeyi AndroidManifest.xml. Bu, <activity>etiketinizde yapılacaktır.
Ek olarak, Android Geliştiricileri kılavuzu şunları belirtir:
[...] ayrıca uygulamanızın öğeyle dikey veya yatay yönlendirme gerektirdiğini de açıkça beyan etmelisiniz. Örneğin
<uses-feature android:name="android.hardware.screen.portrait" />,.
Sorununuzu tamamen çözmeyen bir cevabı kabul ettiğinizi görebiliyorum:
android:screenOrientation="portrait"
Bu, uygulamanızı hem telefonlarda hem de tabletlerde portre olmaya zorlar.
Şunları kullanarak uygulamanın cihazın "tercih edilen" yönünde zorlanmasını sağlayabilirsiniz:
android:screenOrientation="nosensor"
Bu, uygulamanızı çoğu telefonda portre yapmaya ve tabletlerde yatay konuma zorlamanıza neden olur. Manzara modu için tasarlanmış tuş takımına sahip birçok telefon var. Uygulamanızı portre yapmaya zorlamak, onu bu tür cihazlarda neredeyse kullanılamaz hale getirebilir. Android son zamanlarda diğer cihaz türlerine de geçiyor. Cihazın tercih edilen yönü seçmesine izin vermek en iyisidir.
Belki .. programlı olarak tablet veya telefon olduğunu belirlemeniz gerekir ... İlk önce cihazın telefon veya tablet olduğunu kontrol edin
Cihazın akıllı telefon mu yoksa tablet mi olduğunu belirleyin.
Sonra......
if(isTablet)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}else
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Aktivite Etiketi altındaki Manifest dosyasında Ekran yönünü dikey olarak ayarlayın.
android:screenOrientation="locked"
içinde <application>tüm uygulama için <activity>gerçek etkinlik için
Aktivite Etiketi altındaki Manifest dosyasında Ekran yönünü dikey olarak ayarlayın.
İşte örnek
Her Faaliyete girmeniz gerekir
portre için
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
manzara için
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.thcb.app">
<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"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2"
android:screenOrientation="landscape"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Sadece ekle:
android:screenOrientation="portrait"
" AndroidManifest.xml " içinde:
<activity
android:screenOrientation="portrait"
android:name=".MainActivity"
android:label="@string/app_name">
</activity>