Merhabalar,

Bu yazımda Android’te menü nasıl oluşturulur bundan bahsedeceğim. Eclipse’te yeni bir proje açıyoruz. Ben projeme Options_Menu adını verdim.

Projemizi açıktan sonra oluşturacağımız menü için New Android XML File ile projemize yeni bir XML dosyası ekliyoruz. Bu dosyanın Resource Type ını Menu olarak seçiyoruz.

XML dosyamıza ulaştığımızda aşağıdaki kodtaki gibi menü itemlarını ekliyoruz.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/item1" android:title="Seçenek 1" android:icon="@android:drawable/ic_menu_compass"></item>
<item android:id="@+id/item2" android:title="Seçenek 2" android:icon="@android:drawable/ic_menu_call"></item>
</menu>

Yukarıdaki kod ile Seçenek 1 ve Seçenek 2 olmak üzere iki tane menü seçeneği oluşturduk. Burada icon olarakta pusula ve arama ikonlarını seçtik. Siz başka ikonlarda seçebilirsiniz :)

Daha sonra Main.java dosyamıza aşağıdaki kodu ekliyoruz.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
	MenuInflater inflater=getMenuInflater();
	inflater.inflate(R.menu.mymenu, menu);
	return true;
}

Bu şekilde Emulatorde menu ye tıkladığımızda oluşturmuş olduğumuz mymenu.xml dosyasını çağırıyoruz.

Projemizi çalıştırdığımızda Emulatorde MENU tuşuna tıkladığımızda resimdeki gibi gözükecektir :)

Merhabalar,

Bu yazımda Android’te Tema nasıl oluşturulur ve değiştirilir bundan bahsedeceğim. İlk olarak Eclipse’te yeni bir proje açıyoruz. Bunun adını Using_Themes olarak verdim ben projemde.

Daha sonra projemize bir tane Buton, DatePicker, AnalogClock ekliyoruz. Projemizi ilk olarak açtığımızda Hello World olan yazıyı da Tema Uygulaması olarak değiştiriyoruz. Componentları ekledikten sonra main.xml dosyamız aşağıdaki gibi olacaktır.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Using_Themes" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tema Uygulaması" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:text="Button" />

    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginLeft="52dp"
        android:layout_marginTop="82dp" />

    <AnalogClock
        android:id="@+id/analogClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/datePicker1"
        android:layout_marginTop="18dp" />

</RelativeLayout>

Projemizi bu haliyle çalıştırdıktan sonra aşağıdaki resimdeki gibi emulatorde bir görüntü göreceksiniz.

Daha sonra var olan tema değişikliğini yapabilmek adına AndroidManifest.xml dosyasında resimdeki gibi android:theme=”@android:style/Theme.Dialog” olarak uygulamamızın temasını dialog şeklinde çıkmasını sağlıyoruz.





Projemizi tekrar çalıştırdığımızda emulatorde resimdeki gibi uygulamamızın dialog olarak çıktığını göreceksiniz.










Peki kendimiz bir style oluşturup bunu nasıl kullanacağız derseniz yapmamız gereken New->Android XML File ile projemize yeni bir xml dosyası eklemek. Bunu eklerken values olarak belirtiyoruz. Ben burada bu dosyanın adına styles.xml olarak tanımlama yaptım.

Daha sonra xml dosyamızı aşağıdaki gibi düzenliyoruz.

Buradaki parent kodu ile Theme.Dialog temasının bütün özelliklerini kullanıyoruz ama kendimiz yeni bir theme de oluşturuyoruz. Temamızda yazı fontunu kırmızı olarak değiştirme işlemi yaptık. Siz buna başka özelliklerde katabilirsiniz :)

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <style parent="@android:style/Theme.Dialog" name="theme">
       <item name="@android:textColor">#FF0000</item>
   </style>
</resources>

Daha sonra yapmamız gereken AndroidManifest.xml dosyamızda yukarıda belirttiğim android:theme=”@style/theme”  özelliğini sonradan oluşturduğumuz theme olarak atıyoruz. Projemizi tekrar çalıştırdığımızda resimdeki gibi  uygulamamızda bulunan yazıları kırmızı renkte göreceksiniz :)

Merhabalar,

Bu yazımda e-öğrenme paketlerinde kullanılan SCORM standartından bahsedeceğim. SCORM (Sharable Courseware Object Reference Model) e-öğrenme yazılımının dayanıklı, tekrar kullanılabilir, diğer yazılımlar ile birlikte çalışabilir, ulaşılabilir ve taşınabilir olmasını sağlamak amacıyla geliştirilmiş bir modeldir.

SCORM Neler Sağladı?

- Eğitimin bir öğrenme yönetim sisteminden diğerine tanışabilirliğini sağladı,

- İçeriklerin farklı derslerde kullanılabilir olmasını sağladı,

- İçeriğin aranabilir ve ulaşılabilir olmasını sağladı.

Buna ek olarak SCORM’u Learning object ile LMS arasındaki iletişimi sağlayan bir layer olarak da düşünmek, SCORM’un faydasını daha iyi anlatacaktır.

SCORM’un Gelişimi

SCORM ile ilgili ilk çalışma 1997 yılında ABD ordusu tarafından ordu eğitimi için geliştirilmesiyle başladı. Bunu 2000 yılında SCORM 1.0, 2001 yılında 1.1 ve 1.2 paketleri takip etti. 2004 yılında SCORM 2004 ile ilgili başlayan çalışmalar 2009 yılında 4. versiyon olarak çıkarıldı. Hala e-öğrenmelerde bu versiyon kullanılmaktadır.

Buna ek olarak 2010 yılında başlayan Project Tin Can yani yeni nesil SCORM’da e-öğrenme geliştirme araçlarının yeni versiyonları tarafından desteklenmektedir. Tin Can API’si ile ilgili olarak ayrı bir yazımda bahsedeceğim :)

SCORM’un Yapısı

SCORM üç alt özellikten oluşur;

  • İçerik Kümeleme Modeli (Content Aggregation Model): İçerik kümeleme modeli, içeriğin paketlenmesi ve bir LMS’e nasıl aktarılması gerektiğini belirleyen standartlar bütünüdür.
  • Çalışma Ortamı ( Run-Time Environment):  Javascript dosyalarından oluşan ve içeriğin LMS ile iletişimi sağlayan ortamdır.
  • Sıralama ve Dolaşım (Sequencing and Navigation): İçerik geliştiriciler tarafından belirlenen kurallar ile bireyin SCO’lar arasında erişimlerinin sağlanmasıdır.

Merhabalar,

Bu yazımda aspx sayfasında veritabanında bulunan bir tablomuzdaki alanların xml formatında gösterilmesi nasıl sağlanır ondan bahsetmeye çalışacağım. Peki bu bizim ne işimize yarayacak sorusuna ise RSS akışı ya da Podcast yayın akışı oluştururken bu yayının xml formatında olması gerektiğini belirtmek isterim. Bu örnekle aspx sayfanızda RSS akışını ya da Podcast yayın akışını veritabanındaki bilgilerinizden okuyarak oluşturabileceksiniz.

Bunun için ilk olarak

using System.Text;
using System.Xml;
using System.Xml.Linq;

tanımlarını yapmamız gerekecek. Veritabanı bağlantısını kodunuzda oluşturduktan sonra yazmanız gereken kod aşağıdaki gibi olacaktır.

Response.Clear();
Response.ContentType = "text/xml"; //XML tanımlamasını oluşturuyoruz
Response.Write("<?xml version='1.0'?>");
Response.Write("<rss version='2.0'>"); //RSS akışı olacağı için RSS versiyonunu belirtiyoruz.
Response.Write("<channel>");
Response.Write("<title>Test Podcast Yayını</title>"); // Dokümanın başlığı Test Podcast Yayını olarak atıyoruz
foreach (DataRow Item in dt.Rows) // Veritabanındaki kayıtları Item'dan okuyoruz.
{
    Response.Write("<item>"); //item elementini oluşturuyoruz.
    Response.Write("<title>" + Item["title"].ToString() + "</title>"); //item elementinin başlığını veritabanından alıyoruz.
    Response.Write("<link>" + Item["link"].ToString() + "</link>"); //item elementinin bir url bağlantısı varsa linkini veritabanından alıyoruz.
    Response.Write("<pubdate>" + Item["pubdate"].ToString() + "</pubdate>"); //yayının yayınlanma tarihini veritabanından okuyoruz.
    Response.Write("<author>" + Item["author"].ToString() + "</author>"); // yazar bilgisini veritabanından okuyoruz.
    XmlTextWriter TextWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
    string source = Item["img"].ToString(); //Herbir yayın için bir resim varsa bunu source değişkenine aktarıyoruz.
    string desc = Item["description"].ToString(); //Yayının açıklama bilgisini desc değişkenine aktarıyoruz.
    TextWriter.WriteStartElement("description"); // Açıklama bilgisini oluşturuyoruz
    TextWriter.WriteCData(string.Format("<img src=" + source + " /> <br/>" + desc + "")); // açıklama bilgisinin içinde resim dosyasını da gösteriyoruz.
    TextWriter.WriteEndElement(); // açıklama bilgisini kapatıyoruz.
    TextWriter.WriteStartElement("enclosure"); // Podcast yayını için enclosure tagini oluşturuyoruz.
    TextWriter.WriteAttributeString("url", Item["enclosure"].ToString()); // Medya elementinin url bilgisini veritabanından okuyoruz.
    TextWriter.WriteAttributeString("type", "video/mp4"); // Enclosure'un tipini belirliyoruz.
    TextWriter.WriteEndElement(); // Enclosure'u kapatıyoruz
    TextWriter.Flush();
    TextWriter.Close();
    Response.Write("</item>"); // Item elementini kapatıyoruz
}

Response.Write("</channel>");
Response.Write("</rss>"); // RSS akışını kapatıyoruz.
Response.End();

Projenizde yukarıdaki kodu veritabanı bağlantınızdan sonra yazdığınızda ve çalıştırdığınızda Podcast yayının görüntüsünü göreceksiniz. Internet Explorer’da Podcast Yayını ya da RSS akışı olarak gözükecek, diğer browserlarda ise XML formatında gözükecektir.

Arayüz olarak feeds.feedburner.com dan oluşturduğunuz akışın linkini vererek Feed Burner’dan da yararlanabilirsiniz :)