Windows Mobile’da Widget’in Anatomisi

Geçtiğimiz aylarda Windows Mobile 6.5 için basit bir widget oluşturma rehberi yayınlamıştık. Basit olduğu için ayrıntılara pek giremedim. Ancak geçtiğimiz günlerde Windows Mobile takım blognda güzel bir yazı dizisi başladı. İlk adımda değinilen konu da kusursuz bir görüntüleme için uygulanacak işlemler. Kısaca değinelim;
Windows Mobile için yazılan her uygulama farklı ekran tiplerine uyum sağlamak adına içinde bazı kodlar taşır. Bu kodlar ekran çözünürlüğü ve DPI değerleri ile belirlenir ve otomatik olarak algılanarak ekrana yansıtılır. Bu standart bir 240×320 piksellik bir ekrana oturan ve sorunsuz görüntülenen bir uygulamanın aynı şekilde 480×640 yada daha farklı ekran çözünürlüklerinde ve farklı DPI değerlerine sahip ekranlarda aynı uyumu sağlaması içindir. Bu söylediklerimiz Windows Mobile 6.5 widgetleri için de geçerli. İçeriği ekrana tam oturmamış bir widgeti kontrol etmek için büyük çabalar sarfetmek yerine gelişim süresinde widget içine eklenecek bir kaç basit kod ile hazırlanan içeriğin tüm ekran çözünürlüklerinde kusursuzca görüntülenmesi sağlanır.

Windows Mobile 6 Ekran Çözünürlükleri Tablosu
En basit mantıkla; tabloda da yer alan LoDPI ya da HiDPI değerlerine bakalım. Standart 96DPI’lık bir ekranda (240×240, 240×320, 240×400 piksel) sorunsuzca görüntülenen bir widget 96DPI’dan yüksek bir DPI değerine sahip bir ekranda daha küçük görünür. Bunu düzenlemek için 2 CSS dosyası (HiDPI.css ve LoDPI.css) oluşturulur. Bu dosyalar widgetin çalışma sürecinde ekran tipinizi belirleyerek kusursuz görüntüleme sunar. Algılama işlemini bir örnekle gösterelim;
1: function applyCSSStyle() {
2: var width = document.documentElement.clientWidth;
3: var cssFile = "css/LoDPI.css";
4: if (width >= 480) {
5: // The document is wider than 480 pixels
6: // it must be a High DPI device
7: cssFile = "css/HiDPI.css";
8: }
9:
10: // Add the correct CSS style sheet to the document
11: var headID = document.getElementsByTagName("head")[0];
12: var cssNode = document.createElement('link');
13: cssNode.type = 'text/css';
14: cssNode.rel = 'stylesheet';
15: cssNode.href = cssFile;
16: cssNode.media = 'screen';
17: headID.appendChild(cssNode);
18: }
19:
20: function onLoad() {
21: applyCSSStyle();
22: }
Widget API’sinde Widgeti sadece dokunmatik ekrandaki softkey’ler ile kontrol etmenin yanısıra donanımsal tuşlar ile de kontrol etmek için widget.menu.append (menuItem) değerine right SoftKey değeri eklenerek sağlanır. Sol tş değeri daima sabit eylemleri gerçekleştirir, değeri değiştirilemez ya da kaldırılamaz. Bu tuş genelde widget’ten çıkış işlemini veya geri işlemini gerçekleştirir.
































