Android Programlama Ders 4: Layout-dosya, XML Kodlama ve Ekranın Pozisyonu - Technopat
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Nasıl Yapılır
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Mobil - Android Programlama Ders 4: Layout-dosya, XML Kodlama ve Ekranın Pozisyonu

Android Programlama Ders 4: Layout-dosya, XML Kodlama ve Ekranın Pozisyonu

13 Mart 2013 - 15:15
- Mobil, Teknoloji

Bu derste Android etkileşim içinde layout-dosya oluşturmayı öğreneceğiz.Sonra XML kodları inceleyeceğiz ve ekranın pozisyonunun nasıl ayarlanması gerektiğini öğreneceğiz…

1 – Etkileşim içinde Layout – dosya oluşturma

Geçen derste etkileşimin ( Activity) ne olduğunu öğrendik. Etkileşim, layout dosyayı okuyor ve layout’un içindekilerini yansıtıyor. Bu derste etkileşimin hangi layout’u çalıştırması gerektiğini nereden anladığını da göreceğiz.

Şimdi yeni projeyi açalım:

  • Project name: P004-LayoutFiles
  • Build Target: Android 4.2
  • Application name: LayoutFiles
  • Package name: tr.androidApp.LayoutFiles
  • Create Activity: MainActivity

Proje geliştirdiğimiz zaman etkileşim için bir java – klas açılıyor.

Proje açıldığında ve etkileşim çalıştığı zaman uygulama bu klasın metodunu çağıracak. Bu metodları (Fonksiyonları) kodlayarak etkileşimin davranışını değiştirebiliriz.

Projeyi yaratırken ve etkileşimi belirlendiği zaman ona MainActivity ismi veriyorduk.

Layout 01

MainActivity yaratıldığı zaman Eclipse aynı zamanda bir java klas yaratıyor. Şimdi bu klası inceleyelim:src/ tr.androidApp.LayoutFiles /MainActivity.java

MainActivity

MainActivity’yi çift tıklandığında karşımıza böyle bir pencere gelecek:

onCreateJava klasımızda onCreate metod otomatik olarak oluşuyor.Uygulama etkileşimi oluşturup gösterdiği zaman onCreate metodu çalıştırıyor, onCreateOptionsMenu sonra ilgileneceğiz.Şimdi bizim için önemli olan:setContentView(R.layout.main) setContentView metodun amacı layout dosyasından var olan bilgileri etkileşim pencereye yerleştirmek. Etkileşimi oluşturduktan sonra Eclipse bize otomatik olarak java-klası yaratıyor. İlerde biz bu klasları kendimiz yaratmayı da öğreneceğiz. Bu klasa bakalım. Bu dosyayı açacağız: src/tr.AndroidApp.LayoutFiles/MainActivity.java 

Adres olarak program dosyanın ID’sini kullanıyor. Bu ID’lerin dosya yolu şu şekilde: gen/ tr.androidApp.LayoutFiles /R.java ve program bu yolu otomatik olarak yaratıyor.

R_java

Bu dosyayı açabilirsiniz ama değişiklik yapmanızı şimdilik tavsiye etmiyorum. Proje R klasta tüm ID’leri tutuyor. Res/layout/main.xml dosyasını açalım ve orada nelerin var olduğuna bakalım

Layout_HelloWorld

Uygulamayı çalıştıralım (CTRL+F11).

MainActivity_HelloWorld

Etkileşim main.xml dosyanın içeriğini yansıttı. Şimdi başka bir dosyanın içeriğini yansıtmayı deneyelim. Bunu yapmak için yeni bir layout dosya yaratacağız. Mesela myscreen.xml. res/layout dosyasını seçelim ve “yeni dosya yarat” tuşuna basalım.

yeni_xml

Karşımıza böyle bir pencere gelecektir:

myscreen

File: seçiminde myscreen.xml ismini girdikten sonra Finish butonuna basacağız.

my_screen

Bu dosyayı açalım ve Properties’i kullanarak TextView’u ekleyelim. Mesela “Bu ekranın özellikleri main.xml değil myscreen.xml dosyada belirleniyor”.

yeni_layout

Aynı anda Eclipse bize hata oluştuğunu bildirecektir.

hata_error

[I18N] Hardcoded string “…”, should use @string resource. Şimdilik bu hatayı dikkate almayalım. Sonraki derslerde onun nasıl çözüleceğini de öğreneceğiz. R.java dosyasında değişikliklerin oluşması için mutlaka projeyi kaydedelim: CTRL+ SHIFT+S. Şimdi etkileşimi öyle ayarlayalım ki layout main.xml’i kullanmasın. Fakat onun yerine yeni myscreen.xml layout’u kullansın. MainActivity.java dosyasını açalım ve SetContentView satırını değiştirelim. R.layout.main yerine R.layout.myscreen değerini gireceğiz.

myscreenSetCode

Değişiklikleri kaydedelim ve uygulamayı çalıştıralım.

avd_myscreen

Ekranda görüyoruz ki etkileşim bizim yeni myscreen.xml dosyadan bilgi okumuş.

2 – Layout – dosya XML şeklinde

Main.xml açıldığında onu bir görsel olarak karşınızda görüyorsunuz. Yani ekranda ise Main.xml’ın nasıl görüneceğini gösteriliyor. Aşağıda iki tane düğüme görebilirsiniz: Graphical Layout ve main.xml. Şimdi main.xml’i açalım.

main_xml

Burada xml isimleri View elementlerin klaslarıdır, tırnak işareti içerisinde olan uzantılar ise bizim Properties sekmede değiştirdiğimiz View’lerın özellikleridir. Properties sekmede yaptığımız değişiklikleri burada da yapabiliriz. Mesela TextView içeriği değiştirelim. Örnekte “yeni text” yazdık.

yeni_text

Kaydedelim ve Graphical Layout’a açalım.

Graphical_layout

Genelde Android kitapları yazanlar, layout dosyanın içeriğini xml formatta veriyorlar. XML parçaları kopyalayıp yapıştırabiliriz. Bu bize zaman tasarrufu sağlayacaktır.

3 – Layout – dosyanın ekranın pozisyon değişiminde davranışı

Layout dosya ekranın pozisyonu otomatik olarak dikey olarak sayıyor. Mesela tableti yatay pozisyonuna getirdiğimiz zaman ne olacak? Deneyelim.

Myscreen.xml’i değiştirelim. Yeni dört tane butonu ve bir yazı ekleyelim.

Xml kodunu projenize kopyalayabilirsiniz.

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout

xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientation=”vertical”

android:layout_width=”match_parent”

android:layout_height=”match_parent”>

<TextView

android:id=”@+id/textView1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”ekranda dikey pozisyon”>

</TextView>

<LinearLayout

android:layout_height=”wrap_content”

android:layout_width=”match_parent”

android:id=”@+id/linearLayout1″

android:orientation=”vertical”>

<Button

android:id=”@+id/button1″

android:layout_width=”wrap_content”

android:layout_height=”116dp”

android:text=”Button1″ >

</Button>

<Button

android:id=”@+id/button2″

android:layout_width=”wrap_content”

android:layout_height=”118dp”

android:text=”Button2″ >

</Button>

<Button

android:id=”@+id/button3″

android:layout_width=”wrap_content”

android:layout_height=”122dp”

android:text=”Button3″ >

</Button>

<Button

android:id=”@+id/button4″

android:layout_width=”wrap_content”

android:layout_height=”126dp”

android:text=”Button4″ >

</Button>

</LinearLayout>

</LinearLayout>

Projeyi çalıştıralım. Gördüğümüz gibi dikey pozisyonunda tüm butonlar normal görünüyor.

avd_dikey_butonlar

Şimdi emülatorde Ctrl+F12 basalım. Ekranın pozisyonu yatay şeklini aldı ve bizim dördüncü butonumuz ekrana sığmıyor.

avd_yatay_buton

Bu problemi çözmek için bir tane layoutu daha ekleceğiz. Bu layout bizim butonları yatay pozisyonuna yerleştirecek. Etkileşimsiz dikey pozisyonda dikey layoutu kullanacak ve yatay pozisyonda yatay layoutu kullanacak. İlk önce yeni bir klasör oluşturalım res/layout-land ve onun içinde myscreen.xml dosyayı. Bu dosyayı yatay pozisyonda kullanacağız.

Klasör oluşturmak için res klasöre farenin sağ düğmesine basıyoruz(res, New > Folder, Folder name = layout-land).

yeni_klasor

Sonra yeni bir xml dosya oluşturacağız (layout-land, New > Android XML File, File name = myscreen.xml) ve Finish butonuna basıyoruz.

Aşağıdaki kodu yeni myscreen.xml dosyaya kopyalayınız.

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout

xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientation=”vertical”

android:layout_width=”match_parent”

android:layout_height=”match_parent”>

<TextView

android:id=”@+id/textView1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”ekranda yatay pozisyon”>

</TextView>

<LinearLayout

android:layout_height=”wrap_content”

android:layout_width=”match_parent”

android:id=”@+id/linearLayout1″

android:orientation=”horizontal”>

<Button

android:text=”Button1″

android:id=”@+id/button1″

android:layout_height=”100dp”

android:layout_width=”100dp”>

</Button>

<Button

android:text=”Button2″

android:id=”@+id/button2″

android:layout_height=”100dp”

android:layout_width=”100dp”>

</Button>

<Button

android:text=”Button3″

android:id=”@+id/button3″

android:layout_height=”100dp”

android:layout_width=”100dp”>

</Button>

<Button

android:text=”Button4″

android:id=”@+id/button4″

android:layout_height=”100dp”

android:layout_width=”100dp”>

</Button>

</LinearLayout>

</LinearLayout>

Uygulamayı çalıştıralım Ctrl+F11

ekranda_yatay_poz

Gördüğünüz gibi kodumuz başarıyla çalışarak yeni layout’ta, butonları ekrana sığdırarak düzgün bir şekilde görüntüledi.

Bu derste etkileşim içinde layout-dosya  oluşturmayı  ve Eclipse’te  XML kodları gördük. Sonra ekranın pozisyon nasıl değiştirmesi gerektiğini öğrendik. Gelecek dersimizde layout’un çeşitleri olan LinearLayout, TableLayout, RelativeLayout ve AbsoluteLayout’u inceleyeceğiz. Yeni derslerde görüşmek üzere Technopat’ı takip etmeye devam edin…

Android Programlamaya Giriş Ders 1: SDK Kurulumu ve Ayarları

Android Programlamaya Giriş Ders 2: AVD Kurulumu ve ilk Projenin Çalıştırılması

Android Programlamaya Giriş Ders 3: Ekranın Nesneleri ve Nesnelerin Özellikleri

Android Programlama Ders 4: Layout-dosya, XML Kodlama ve Ekranın Pozisyonu

Android Programlama Ders 5: Layout Çeşitleri

Android Programlama Ders 6: Kod İçerisinden View Nesneleriyle Çalışma

Etiketler: activityAndroiderrorgraphical layoutIDJavalayoutMainActivitymyscreenonCreatepropertiessetContentViewXML
PaylaşPaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorumlar 2

  1. Levent Yadırga says:
    12 yıl önce

    Text View altınada bir buton ekliyorum yazı çok fazla olduğunda butonun üzerinden geçiyor yada buton görünmüyor leyaut çeşitlerini denedim bir türlü olmadı…TextView in yüksekliğine 350dp gibi bir değer veriyorum bu seferde farklı ekran çözünürlüklerinde güzel olmuyor…

    Yanıtla
  2. Levent Yadırga says:
    12 yıl önce

    Text View altınada bir buton ekliyorum yazı çok fazla olduğunda butonun üzerinden geçiyor yada buton görünmüyor leyaut çeşitlerini denedim bir türlü olmadı…TextView in yüksekliğine 350dp gibi bir değer veriyorum bu seferde farklı ekran çözünürlüklerinde güzel olmuyor…
    Yardımcı olursanız sevinirim…

    Yanıtla

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • 3 kişiye Graveyard Keeper hediye!
  • RTX 5070 sistem oyunlarda sürekli donuyor
  • Logitech Z407 alınır mı?
  • Sınavlara girmemek ve devamsızlık yapma sonucu kayıt silinir mi?
  • Format attıktan sonra ekran kartı render sorunu yaşıyor
  • MCHOSE L7 Pro dongle temassızlık yapıyor
  • Kişisel yapay zeka süper bilgisayarı: GIGABYTE AI TOP ATOM tanıtıldı
  • RTX 4060 Ryzen 5 5500 Valorant FPS değeri normal mi?
  • AMD Ryzen 5 5500 ve RTX 4060 sistemde Valorant'ta 210-230 FPS normal mi?
  • GameGaraj Slayer R9T-99HX-5070 Ti laptop

Technopat Video

Şu an oynayan

Razer Deathadder V4 Pro White Edition inceleme: En hızlı oyuncu faresi!

Razer Deathadder V4 Pro White Edition inceleme

Razer Deathadder V4 Pro White Edition inceleme: En hızlı oyuncu faresi!

Haber
Linux’un hikayesi: Yokluktan doğan açık kaynak devrimi

Linux’un hikayesi: Yokluktan doğan açık kaynak devrimi

Haber
vivo'nun en iddialı telefonu X300 Pro'ya ilk bakış!

vivo’nun en iddialı telefonu vivo X300 Pro’ya ilk bakış!

Akıllı Telefon

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
  • Seçenekleri yönet
  • Hizmetleri yönetin
  • {vendor_count} satıcılarını yönetin
  • Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
  • {title}
  • {title}
  • {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Nasıl Yapılır
  • Yapay Zeka
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal