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ırma kısıtlaması 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 veya sonraki sürümleri hedefleyen uygulamalarda, en küçük genişliği 600 dp'den büyük olan ekranlarda yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamaları 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 dikey siyah bantlar kullanılmaz.
Android 17, Android 16'da sunulan büyük ekranlı cihazlarda yön ve yeniden boyutlandırma 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 doğru ilerliyor. 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ı yoksaymak, uygulamanızın kullanıcı arayüzünü bazı cihazlarda (özellikle dikey yönde kilitlenmiş küçük düzenler için tasarlanmış öğeler) 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ü pencereleme ya da bağlı ekranlar gibi senaryolarda en boy oranı hesaplamaları yapılırken karşılaşılan 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ü durumunu doğru şekilde kaydetmeyi Kullanıcı arayüzü durumlarını kaydetme başlıklı makaleden öğrenebilirsiniz.
Uygulama ayrıntıları
Aşağıdaki manifest özellikleri ve çalışma zamanı API'leri, tam ekran ve çoklu pencere modlarındaki büyük ekranlı cihazlarda yoksayılır:
screenOrientationresizableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()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'deki 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