Ekran Yapılandırma
Çerçeve Düzeni Yöneticisi
Tartıştığımız düzen yöneticileri, çeşitli düzen stratejileri uygular. Başka bir deyişle, her birinin çocuklarını ekranda konumlandırmak ve yönlendirmek için belirli bir yolu vardır. Bu düzen yöneticileriyle, ekranda aynı anda her biri ekranın bir bölümünü kaplayan birçok kontrole sahip olabilirsiniz.
Android ayrıca, çoğunlukla tek bir öğeyi görüntülemek için kullanılan bir düzen yöneticisi sunar. Bu düzen yöneticisine FrameLayout düzen yöneticisi denir. Bu yardımcı düzen sınıfını esas olarak tek bir görünümü dinamik olarak görüntülemek için kullanırsınız, ancak onu birçok öğeyle doldurabilir, birini görünür, diğerleri görünmez olarak ayarlayabilirsiniz. Listeleme, bir FrameLayout kullanımını gösterir.
Liste, düzen dosyasını ve etkinliğin onCreate() yöntemini gösterir. Gösterim fikri, aynı anda ImageView nesnelerinden yalnızca biri görünecek şekilde FrameLayout’a iki ImageView nesnesi yüklemektir. Kullanıcı arayüzünde, kullanıcı görünen resme tıkladığında, bir resmi gizleyip diğerini gösteriyoruz.
Düzenden başlayarak Listeleme’ye şimdi daha yakından bakın. Bir FrameLayout’u iki ImageView nesnesi ile tanımladığımızı görebilirsiniz (ImageView, görüntülerin nasıl görüntüleneceğini bilen bir kontroldür). İkinci ImageView’ın görünürlüğünün, kontrolü görünmez hale getirerek gitmiş olarak ayarlandığına dikkat edin. Şimdi onCreate() yöntemine bakın.
onCreate() yönteminde, dinleyicileri ImageView nesneleri üzerindeki tıklama olaylarına kaydederiz. Tıklama işleyicisinde bir ImageView gizleyip diğerini gösteriyoruz.
Daha önce söylediğimiz gibi, genellikle bir görünümün içeriğini dinamik olarak tek bir denetime ayarlamanız gerektiğinde FrameLayout’u kullanırsınız. Genel uygulama bu olsa da kontrol, gösterdiğimiz gibi birçok çocuğu kabul edecektir. Listeleme, düzene iki denetim ekler, ancak aynı anda denetimlerden biri görünür durumdadır. Ancak FrameLayout, sizi aynı anda yalnızca bir denetimin görünür olmasına zorlamaz.
Düzene çok sayıda denetim eklerseniz, Frame Layout, sonuncusu en üstte olacak şekilde denetimleri üst üste istifler. Bu ilginç bir kullanıcı arayüzü oluşturabilir. Örneğin, görünen iki ImageView nesnesine sahip bir FrameLayout gösterir. Kontrollerin istiflendiğini ve en üsttekinin arkasındaki görüntüyü kısmen kapattığını görebilirsiniz.
FrameLayout’un bir başka ilginç yönü de, düzene birden fazla denetim eklerseniz, düzenin boyutunun kapsayıcıdaki en büyük öğenin boyutu olarak hesaplanmasıdır. İçinde, üstteki görüntü aslında arkasındaki görüntüden çok daha küçüktür, ancak düzenin boyutu en büyük kontrole göre hesaplandığından üstteki görüntü uzatılır.
Ayrıca, bir FrameLayout’un içine bir veya daha fazlasını başlatmak için görünmez olacak şekilde birçok denetim koyarsanız, setConsiderGoneChildrenWhenMeasuring() kullanmayı düşünebilirsiniz.
Düzen boyutunu en büyük çocuk belirlediğinden, başlangıçta en büyük çocuk görünmezse sorun yaşarsınız. Yani görünür hale geldiğinde sadece kısmen görünür olacaktır. Tüm öğelerin düzgün bir şekilde işlendiğinden emin olmak için, set Measure Gone Children When Measuring() öğesini çağırın ve ona bir true boolean değeri iletin.
Windows 10 bulanık ekran
Windows 11 çift ekran
Windows 10 ekran büyüdü
Windows 10 ekran kontrast ayarları
Windows 10 ekran genişletme sorunu
Windows XP ekran boyutu Ayarlama
Monitör netlik ayarı
Windows 10 ekran çoğaltma sorunu
Düzeni Çeşitli Ekran Yapılandırmaları için Özelleştirme
Şimdiye kadar, Android’in kullanıcı arabirimleri oluşturmanıza yardımcı olan bir dizi düzen yöneticisi sunduğunu çok iyi biliyorsunuz. Tartıştığımız düzen yöneticileriyle biraz oynadıysanız, istediğiniz görünümü ve hissi elde etmek için düzen yöneticilerini çeşitli şekillerde birleştirebileceğinizi bilirsiniz.
Tüm düzen yöneticileriyle bile, kullanıcı arayüzleri oluşturmak ve onları düzeltmek zor olabilir. Bu özellikle mobil cihazlar için geçerlidir. Mobil cihazların kullanıcıları ve üreticileri giderek daha sofistike hale geliyor ve bu, geliştiricinin işini daha da zorlaştırıyor.
Zorluklardan biri, çeşitli ekran yapılandırmalarında görüntülenen bir uygulama için bir kullanıcı arabirimi oluşturmaktır. Örneğin, uygulamanız dikey ve yatay olarak görüntülenseydi, kullanıcı arabiriminiz nasıl görünürdü? Henüz bununla karşılaşmadıysanız, aklınız muhtemelen şu anda bu yaygın senaryoyla nasıl başa çıkacağınızı merak ederek yarışıyor. İlginç bir şekilde ve neyse ki, Android bu kullanım durumu için biraz destek sağlıyor.
Şu şekilde çalışır: Android, cihazın yapılandırmasına bağlı olarak belirli klasörlerdeki düzenleri bulur ve yükler. Bir cihaz üç konfigürasyondan birinde olabilir: dikey, yatay veya kare. Çeşitli konfigürasyonlar için farklı düzenler sağlamak üzere, her konfigürasyon için Android’in uygun düzeni yükleyeceği özel klasörler oluşturmanız gerekir.
Bildiğiniz gibi, varsayılan düzen klasörü res/layout konumunda bulunur. Portre görüntüsünü desteklemek için res/layout-port adında bir klasör oluşturun. Manzara için res/layout-land adlı bir klasör oluşturun. Kare için de res/layout-square adında bir tane oluşturun.
Bu noktada iyi bir soru, “Bu üç klasörle, varsayılan yerleşim klasörüne (res/layout) ihtiyacım var mı?” Genel olarak, evet. Android’in kaynak çözümleme mantığının önce yapılandırmaya özgü dizine baktığını fark edin. Android orada bir kaynak bulamazsa, varsayılan düzen dizinine gider. Bu nedenle, varsayılan yerleşim tanımlarını res/layout’a ve özelleştirilmiş sürümleri konfigürasyona özgü klasörlere yerleştirebilirsiniz.
Android SDK’nın, hangi yapılandırmanın yükleneceğini programlı olarak belirlemeniz için herhangi bir API sunmadığını unutmayın; sistem yalnızca aygıtın yapılandırmasına göre klasörü seçer. Ayrıca, düzenin yapılandırma odaklı tek kaynak olmadığını da anlayın. Res klasörünün tüm içeriği, her yapılandırma için varyasyonlara sahip olabilir. Örneğin, yapılandırma başına yüklenen farklı çekmecelere sahip olmak için çizilebilir port, çizilebilir arazi ve çizilebilir kare için klasörler oluşturun.
Bağdaştırıcıları Anlamak
Göreceğimiz gibi bağdaştırıcıların çeşitli sorumlulukları vardır, ancak genel olarak konuşursak, verileri bir kontrole bağlamayı daha kolay ve daha esnek hale getirirler. Android’deki adaptörler, android.widget.AdapterView’ü genişleten widget’lar için kullanılır. AdapterView’ü genişleten sınıflar arasında ListView, GridView, Spinner ve Gallery bulunur.
AdapterView’ün kendisi aslında Android’i genişletiyor. widget.ViewGroup; bu, ListView, GridView ve benzerlerinin kapsayıcı denetimleri olduğu anlamına gelir. Başka bir deyişle, bir alt denetim koleksiyonu görüntülerler.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)