Örnek için aşağıdaki dimens.xml değerlerinde kullandınız.
Diğer değerler klasöründe, metin boyutunuz için değerleri değiştirmeniz gerekir.
Android 3.0 çalıştıran ilk nesil tabletler için, tablet düzenlerini bildirmenin uygun yolu, bunları xlarge yapılandırma niteleyicisine (örneğin, res / layout-xlarge /) sahip bir dizine koymaktı. Diğer tablet türlerini ve ekran boyutlarını (özellikle 7 inçlik tabletleri) barındırmak için Android 3.2, daha ayrık ekran boyutları için kaynakları belirlemenin yeni bir yolunu sunar. Yeni teknik, düzeninizin ihtiyaç duyduğu alan miktarını temel alır (örneğin 600 dp genişlik), mizanpajınızı genelleştirilmiş boyut gruplarına (büyük veya xlarge gibi) sığdırmaya çalışmak yerine.
Genelleştirilmiş boyut gruplarını kullanırken 7 inçlik tabletler için tasarım yapmanın zor olmasının nedeni, 7 inçlik bir tabletin teknik olarak 5 inçlik bir telefonla (büyük grup) aynı grupta olmasıdır. Bu iki cihaz görünüşte boyut olarak birbirine yakın olsa da , bir uygulamanın kullanıcı arayüzü için alan miktarı, kullanıcı etkileşiminin tarzı gibi önemli ölçüde farklıdır. Bu nedenle, 7 "ve 5" ekran her zaman aynı düzeni kullanmamalıdır. Bunlar için farklı düzenler sağlamanızı mümkün kılmak için iki tür ekran, Android artık düzen kaynaklarınızı, dp birimlerinde belirtilen, uygulamanızın düzeni için gerçekte mevcut olan genişlik ve / veya yüksekliğe göre belirlemenize olanak tanır.
Örneğin, tablet tarzı aygıtlar için kullanmak istediğiniz düzeni tasarladıktan sonra, ekran genişliği 600 dp'den az olduğunda düzenin düzgün çalışmayacağını belirleyebilirsiniz. Böylece bu eşik, tablet düzeniniz için ihtiyaç duyduğunuz minimum boyut olur. Bu nedenle, artık bu düzen kaynaklarının yalnızca uygulamanızın kullanıcı arabirimi için en az 600 dp genişlik olduğunda kullanılması gerektiğini belirtebilirsiniz.
Ya bir genişlik seçmeli ve minimum boyutunuz olarak tasarlamalısınız ya da tamamlandığında düzeninizin desteklediği en küçük genişliğin ne olduğunu test etmelisiniz.
Not: Bu yeni boyutlu API'lerle kullanılan tüm şekillerin yoğunluktan bağımsız piksel (dp) değerleri olduğunu ve mizanpaj boyutlarınızın da her zaman dp birimleri kullanılarak tanımlanması gerektiğini unutmayın, çünkü sizin önemsediğiniz şey sistemden sonra mevcut olan ekran alanı miktarıdır. ekran yoğunluğunu hesaba katar (ham piksel çözünürlüğü kullanmanın aksine). Yoğunluktan bağımsız pikseller hakkında daha fazla bilgi için, bu belgenin önceki kısımlarında bulunan Terimler ve kavramlar bölümünü okuyun. Yeni boyut niteleyicileri kullanma
Düzeniniz için mevcut alana göre belirleyebileceğiniz farklı kaynak konfigürasyonları tablo 2'de özetlenmiştir. Bu yeni niteleyiciler, geleneksel ekran boyutu gruplarına (küçük, normal, normal, vb.) Kıyasla uygulamanızın desteklediği belirli ekran boyutları üzerinde size daha fazla kontrol sunar. büyük ve xlarge).
Not: Bu niteleyicileri kullanarak belirlediğiniz boyutlar gerçek ekran boyutları değildir. Aksine, boyutlar, etkinliğinizin penceresi için mevcut olan dp birimlerindeki genişlik veya yükseklik içindir. Android sistemi, sistem kullanıcı arabirimi için ekranın bir kısmını kullanıyor olabilir (örneğin, ekranın altındaki sistem çubuğu veya üstteki durum çubuğu), bu nedenle ekranın bir kısmı düzeninizde kullanılamayabilir. Bu nedenle, beyan ettiğiniz boyutlar özellikle faaliyetinizin ihtiyaç duyduğu boyutlarla ilgili olmalıdır - sistem, düzeniniz için ne kadar alan sağladığını bildirirken sistem kullanıcı arabirimi tarafından kullanılan herhangi bir alanı hesaba katar. Ayrıca, Eylem Çubuğunun uygulamanızın pencere alanının bir parçası olarak kabul edildiğine dikkat edin, ancak mizanpajınız bunu belirtmiyor, bu nedenle mizanpajınız için mevcut alanı azaltır ve tasarımınızda bunu hesaba katmanız gerekir.
Tablo 2. Ekran boyutu için yeni yapılandırma niteleyicileri (Android 3.2'de kullanıma sunulmuştur). Ekran yapılandırması Niteleyici değerleri Açıklama smallestWidth swdp
Örnekler: sw600dp sw720dp
Kullanılabilir ekran alanının en kısa boyutuyla gösterildiği gibi bir ekranın temel boyutu. Özellikle, aygıtın en küçük Genişliği, ekranın mevcut yüksekliği ve genişliğinin en kısasıdır (bunu ekran için "mümkün olan en küçük genişlik" olarak da düşünebilirsiniz). Ekranın mevcut yönünden bağımsız olarak, uygulamanızın kullanıcı arayüzü için en az dps genişliğe sahip olmasını sağlamak için bu niteleyiciyi kullanabilirsiniz.
Örneğin, düzeniniz en küçük ekran alanı boyutunun her zaman en az 600 dp olmasını gerektiriyorsa, bu niteleyiciyi düzen kaynaklarını, res / layout-sw600dp / oluşturmak için kullanabilirsiniz. Sistem, 600dp tarafının kullanıcı tarafından algılanan yükseklik veya genişlik olup olmadığına bakılmaksızın, bu kaynakları yalnızca mevcut ekranın en küçük boyutu en az 600dp olduğunda kullanacaktır. SmallestWidth, aygıtın sabit bir ekran boyutu özelliğidir; ekranın yönü değiştiğinde cihazın en küçük genişliği değişmez.
Bir cihazın en küçük genişliği, ekran dekorasyonlarını ve sistem kullanıcı arayüzünü dikkate alır. Örneğin, cihaz, ekranda en küçük Genişliğin ekseni boyunca boşluğu hesaba katan bazı kalıcı UI öğelerine sahipse, sistem, en küçük Genişliği gerçek ekran boyutundan daha küçük olarak bildirir çünkü bunlar, kullanıcı arayüzünüz için kullanılamayan ekran pikselleridir.
Bu, kullanıcı arayüzünüz için mevcut olan etkili boyut için ayrı bir sayı tanımlamanıza olanak tanıyan genelleştirilmiş ekran boyutu niteleyicilerine (küçük, normal, büyük, xlarge) bir alternatiftir. Genel ekran boyutunu belirlemek için smallestWidth kullanmak kullanışlıdır, çünkü genişlik genellikle bir düzen tasarlarken itici faktördür. Bir kullanıcı arayüzü genellikle dikey olarak kaydırılır, ancak yatay olarak ihtiyaç duyduğu minimum alan konusunda oldukça katı kısıtlamalara sahiptir. El cihazları için tek bölmeli düzen veya tabletler için çok bölmeli düzen kullanılıp kullanılmayacağının belirlenmesinde mevcut genişlik, aynı zamanda kilit faktördür. Bu nedenle, muhtemelen her cihazda mümkün olan en küçük genişliğin ne olacağına en çok önem veriyorsunuz. Mevcut ekran genişliği wdp
Örnekler: w720dp w1024dp
Değer ile tanımlanan, kaynakların kullanılması gereken dp birimlerinde minimum kullanılabilir genişliği belirtir. Kullanıcı arayüzünüz için kullanılabilen geçerli gerçek genişliği yansıtmak için ekranın yönü yatay ve dikey arasında geçiş yaptığında sistemin karşılık gelen genişlik değeri değişir.
Bu, çok bölmeli bir düzen kullanıp kullanmayacağınızı belirlemede genellikle yararlıdır, çünkü bir tablet cihazda bile, yatay yön için yaptığınız aynı çok bölmeli düzeni dikey yönlendirme için istemezsiniz. Bu nedenle, hem ekran boyutunu hem de yönlendirme niteleyicilerini birlikte kullanmak yerine, düzen için gereken minimum genişliği belirtmek için bunu kullanabilirsiniz. Kullanılabilir ekran yüksekliği hdp
Örnekler: h720dp h1024dp vb.
Değer ile tanımlanan, kaynakların kullanılması gereken dp birimleri cinsinden minimum ekran yüksekliğini belirtir. Kullanıcı arayüzünüz için kullanılabilen geçerli gerçek yüksekliği yansıtmak için ekranın yönü yatay ve dikey arasında geçiş yaptığında sistemin karşılık gelen yüksekliği değişir.
Düzeninizin gerektirdiği yüksekliği tanımlamak için bunu kullanmak, hem ekran boyutunu hem de yönlendirme niteleyicilerini kullanmak yerine wdp'nin gerekli genişliği tanımlamak için olduğu gibi kullanışlıdır. Bununla birlikte, UI'lerin genellikle dikey olarak kaydırıldığı ve bu nedenle ne kadar yüksekliğin mevcut olduğu konusunda daha esnek olduğu, ancak genişliğin daha katı olduğu düşünüldüğünde, çoğu uygulama bu niteleyiciye ihtiyaç duymayacaktır.
Bu niteleyicileri kullanmak, ekran boyutu gruplarını kullanmaktan daha karmaşık görünebilir, ancak kullanıcı arayüzünüzün gereksinimlerini belirledikten sonra aslında daha basit olmalıdır. Kullanıcı arayüzünüzü tasarlarken, muhtemelen ilgilendiğiniz en önemli şey, uygulamanızın ahize tarzı bir kullanıcı arayüzü ile birden fazla bölme kullanan tablet tarzı bir kullanıcı arayüzü arasında geçiş yaptığı gerçek boyuttur. Bu anahtarın kesin noktası, tasarımınıza bağlı olacaktır — belki de tablet düzeniniz için 720dp genişliğe ihtiyacınız var, belki 600dp yeterlidir veya 480dp veya bunların arasında bir sayı olabilir. Tablo 2'deki bu niteleyicileri kullanarak, düzeninizin değişeceği kesin boyutun kontrolü sizdedir.
Bu boyut yapılandırma niteleyicileri hakkında daha fazla tartışma için Kaynak Sağlama belgesine bakın. Yapılandırma örnekleri
Tasarımlarınızdan bazılarını farklı cihaz türleri için hedeflemenize yardımcı olmak üzere, tipik ekran genişlikleri için bazı rakamlar:
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
Tablo 2'deki boyut belirleyicilerini kullanarak, uygulamanız genişlik ve / veya yükseklik için istediğiniz herhangi bir sayıyı kullanarak el cihazları ve tabletler için farklı düzen kaynaklarınız arasında geçiş yapabilir. Örneğin, tablet mizanpajınız tarafından desteklenen en küçük mevcut genişlik 600dp ise, şu iki düzen grubunu sağlayabilirsiniz:
res / layout / main_activity.xml # El cihazları için res / layout-sw600dp / main_activity.xml # Tabletler için
Bu durumda tablet düzeninin uygulanabilmesi için mevcut ekran alanının en küçük genişliği 600 dp olmalıdır.
Kullanıcı arayüzünüzü 7 ”ve 10” tabletler gibi boyutları ayırt etmek için daha fazla özelleştirmek istediğiniz diğer durumlarda, en küçük ek düzenler tanımlayabilirsiniz:
res / layout / main_activity.xml # El cihazları için (600dp'den küçük mevcut genişlik) res / layout-sw600dp / main_activity.xml # 7 ”tabletler için (600dp genişliğinde ve daha büyük) res / layout-sw720dp / main_activity.xml
10 ”tabletler için (720 dp genişlik ve daha büyük)
Önceki iki örnek kaynak kümesinin, aygıtın geçerli yönüne bakılmaksızın ekranın iki kenarından en küçük olanını belirten "en küçük genişlik" niteleyicisi olan swdp'yi kullandığına dikkat edin. Bu nedenle, swdp kullanmak, ekranın yönünü göz ardı ederek mizanpajınız için mevcut genel ekran boyutunu belirlemenin basit bir yoludur.
Bununla birlikte, bazı durumlarda, düzeniniz için önemli olan, şu anda tam olarak ne kadar genişlik veya yüksekliğin mevcut olduğudur. Örneğin, yan yana iki parçalı iki bölmeli bir düzene sahipseniz, aygıt yatay veya dikey yönde olsun, ekran en az 600 dp genişlik sağladığında bunu kullanmak isteyebilirsiniz. Bu durumda, kaynaklarınız şöyle görünebilir:
res / layout / main_activity.xml # El cihazları için (mevcut genişlik 600dp'den küçük) res / layout-w600dp / main_activity.xml # Çoklu bölme (600dp veya daha fazla genişliğe sahip herhangi bir ekran)
İkinci kümenin "kullanılabilir genişlik" niteleyicisi olan wdp'yi kullandığına dikkat edin. Bu şekilde, bir aygıt, ekranın yönüne bağlı olarak aslında her iki düzeni de kullanabilir (mevcut genişlik bir yönde en az 600 dp ve diğer yönde 600 dp'den azsa).
Mevcut yükseklik sizin için önemliyse, hdp niteleyicisini kullanarak aynısını yapabilirsiniz. Veya, gerçekten spesifik olmanız gerekiyorsa wdp ve hdp niteleyicilerini birleştirin.