Android uygulamaları artık çeşitli cihazlarda (ör. telefonlar, tabletler, katlanabilir cihazlar, masaüstü bilgisayarlar, arabalar ve TV'ler) ve büyük ekranlardaki pencere modlarında (ör. bölünmüş ekran ve pencereli görüntüleme) çalışabildiğinden geliştiriciler, cihaz yönünden bağımsız olarak herhangi bir ekran ve pencere boyutuna uyum sağlayan Android uygulamaları oluşturmalıdır. Yönü ve yeniden boyutlandırılabilirliği kısıtlama gibi paradigmalar, günümüzün çok cihazlı dünyasında çok kısıtlayıcıdır.
Yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını yoksayma
Android 17'yi (API düzeyi 37) veya sonraki sürümleri hedefleyen uygulamalarda yön, yeniden boyutlandırılabilirlik ve en-boy oranı kısıtlamaları, en küçük genişliği 600 dp'den büyük olan ekranlarda artık geçerli değildir. Uygulamalar, en boy oranından veya kullanıcının tercih ettiği yönlendirmeden bağımsız olarak ekran penceresinin tamamını doldurur ve sütun biçiminde görüntüleme kullanılmaz.
Android 17, Android 16'da sağlanan büyük ekranlı cihazlarda yön ve yeniden boyutlandırılabilirlik kısıtlamaları için geçici geliştirici devre dışı bırakma seçeneğini kaldırıyor.
Bu değişiklik, yeni bir standart platform davranışı sunar. Android, uygulamaların çeşitli yönlere, ekran boyutlarına ve en-boy oranlarına uyum sağlamasının beklendiği bir modele geçiş yapıyor. Sabit yönlendirme veya sınırlı yeniden boyutlandırma gibi kısıtlamalar, uygulamanın uyarlanabilirliğini engeller. Mümkün olan en iyi kullanıcı deneyimini sunmak için uygulamanızı uyarlanabilir hale getirin.
Bu davranışı, uygulama uyumluluğu çerçevesini kullanarak ve UNIVERSAL_RESIZABLE_BY_DEFAULT uyumluluk işaretini etkinleştirerek de test edebilirsiniz.
Sık karşılaşılan zarar veren değişiklikler
Yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarının yoksayılması, uygulamanızın kullanıcı arayüzünü bazı cihazlarda, özellikle de dikey yönde kilitlenmiş küçük düzenler için tasarlanmış öğeleri etkileyebilir. Örneğin, uygulamalarda düzenlerin gerilmesi, ekran dışı animasyonlar ve bileşenler gibi sorunlar olabilir. En-boy oranı veya yönlendirme hakkında yaptığınız tüm varsayımlar, uygulamanızda görsel sorunlara neden olabilir. Bu sorunlardan nasıl kaçınacağınız ve uygulamanızın uyarlanabilir davranışını nasıl iyileştireceğiniz hakkında daha fazla bilgi edinin.
Yatay katlanabilir cihazlarda veya çoklu pencere, masaüstü pencereli görüntüleme ya da bağlı ekranlar gibi senaryolarda en boy oranı hesaplamalarıyla ilgili yaygın bir sorun, kamera önizlemesinin gerilmiş, döndürülmüş veya kırpılmış görünmesidir. Bu sorun genellikle büyük ekranlı ve katlanabilir cihazlarda görülür. Bunun nedeni, uygulamaların kamera özellikleri (ör. en-boy oranı ve sensör yönü) ile cihaz özellikleri (ör. cihaz yönü ve doğal yön) arasında sabit ilişkiler olduğunu varsaymasıdır. Kamera önizlemesini yönetme hakkında daha fazla bilgi edinin.
Cihaz döndürmeye izin vermek, daha fazla etkinlik yeniden oluşturulmasına neden olur. Bu da düzgün şekilde korunmadığı takdirde kullanıcı durumunun kaybolmasına yol açabilir. Kullanıcı arayüzü durumlarını kaydetme bölümünden kullanıcı arayüzü durumunu doğru şekilde nasıl kaydedeceğinizi öğrenin.
Uygulama ayrıntıları
Aşağıdaki manifest özellikleri ve çalışma zamanı API'leri, tam ekran ve çok pencereli modlarda büyük ekranlı cihazlarda yoksayılır:
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
screenOrientation, setRequestedOrientation() ve getRequestedOrientation() için aşağıdaki değerler yok sayılır:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
Ekranın yeniden boyutlandırılmasıyla ilgili olarak android:resizeableActivity="false",
android:minAspectRatio ve android:maxAspectRatio'nin etkisi yoktur.
İstisnalar
Android 17 yön, yeniden boyutlandırılabilirlik ve en-boy oranı kısıtlamaları aşağıdaki durumlarda geçerli değildir:
- Oyunlar (
android:appCategorybayrağına göre) - Cihazın en boy oranı ayarlarında uygulamanın varsayılan davranışını açıkça etkinleştiren kullanıcılar
- En küçük genişliği
sw600dp'dan küçük olan ekranlar