Mobil Uygulama Geliştirme
3.Hafta
Öğr. Gör. Ali
DURDU
Android’de Layout
Android’de
kullanıcıların kullandıkları arayüzlerin tasarımları layoutlar
aracılığıyla yapılır. Layout ekrandaki nesnelerin yerleşme kurallarını
tanımlar.
Dört çeşit layout yerleşim tipi vardır.
1- Linear Layout
2- Relative Layout
3- Absolute Layout
4- Frame Layout
5-Table Layout
6- ScrollView
7- GridView
Linear Layout
Nesnelerin ekranda yazılış sırasına göre yerleştiği layout tipidir.
•
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
•
•
•
xmlns:tools="http://schemas.android.com/tools"
•
•
•
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
</Linear>
Linear Layout
android:orientation= " vertical "
Özelliği nesnelerin diziliş sırasını dikey olarak
ayarlar.
android:orientation= "horizontal"
Özelliği nesnelerin diziliş sırasını dikey olarak
ayarlar.
Relative Layout
Nesnelerin dizilişleri diğer nesnelere bağlıdır.
Bir nesnenin konumu diğer nesneye göre belirlenir.
Bir nesne diğer nesnenin;
•
•
•
•
solunda gösterilmesi isteniyorsa layout_toLeftOf,
sağında gösterilmesi isteniyorsa layout_toRightOf,
üzerinde gösterilmesi isteniyorsa layout_above,
altında gösterilmesi için layout_below
Relative Layout
Bir nesne diğer nesnenin;
•
•
•
•
sol kenarına göre konumlanacaksa layout_alignLeft,
sağ kenarına göre konumlanacaksa layout_alignRight,
üst kenarına göre konumlanacaksa layout_alignTop,
alt kenarına göre konumlanacaksa layout_alignBottom
Relative Layout
Bir nesne diğer nesnenin;
•
•
•
•
sol kenarına göre konumlanacaksa layout_alignParentLeft,
sağ kenarına göre konumlanacaksa layout_alignParentRight,
üst kenarına göre konumlanacaksa layout_alignParentTop,
alt kenarına göre konumlanacaksa layout_alignParentBottom
Relative Layout
•
Nesnenin yerleşimi ekranın
dikey ortasında olması için layout_centerVertical,
yatay ortasında olması için layout_centerHorizontal
Absolute Layout
•
Nesnelerin yerleşimi sayısal olarak belirtildiği yere göre
konumlandırılır. Bileşenin ekrandaki konumunu belirlemek için
layout_x ve layout_y etiketleri kullanılır. Konum değerleri dp
olarak belirlenebilir.
Frame Layout
•
Bu layout türünde ekranda duruma göre tek bir view nesnesinin
görünmesine olanak sağlar.Örnek olarak ekrana bir buton
bıraktınız.Ardından bir TextView nesnesi bıraktınız. Ekranda
boyutlara göre buton nesnesi ve textview nesnesi birlikte
gözükebilir. Üst üste nesneleri gösterebilir.
Table Layout
•
Genellikle veri girişlerinde kullanılan layout çeşididir. Ekranı
satırlara bölerek işlem yaparız. Ve bu şekilde düzenli bir ekran ile
kullanıcının karşısına çıkmış oluruz.
ScrollView
•
Nesneler ekrandan taşıyorsa bu layout kullanılır. Ekrandan taşan
kısımlarda scrool ile kaydırma işlemi yapılabilir.
GridView
•
Nesneler satır ve sutun şeklinde dizilecek se bu layout kullanılır.
Layout Özellikleri
android:layout_width, android:layout_height
Özelliği layoutun genişlik ve yüksekliğini ayarlar.
Alabileceği değerler: match_parent , fill_parent, wrap_content ve
sayısal değerler.
“fill_parent” demek anne objenin(bu durumda ekranın) tamamını
kapla demektir. Buna alternatif olan“wrap_content” değeri de sadece
ara yüz içeriğinin gerektirdiği kadar yer kapla anlamına gelir.”fill_parent”
ve
“wrap_content”
dışında
bir
de
“match_parent”mevcuttur.
Genellikle bir parçacığın yanına bir başka parçacık yerleştirilirken
kullanılır. Durumun böyle olduğunu varsayarsak; önceden var olan
parçacıktan kalan yatay ya da dikey alan içinde bulunduğu layoutun
sınırlarını tamamlar.
Layout Özellikleri
android:id=@+id/id_adı
ifadesi nesnelere ID verirken kullanılanılır. Burada nesneye “id_adı”
ID’sini vermiş oluruz.
android:[email protected]/txt_ad
İfadesi ile nesnenin üzerinde görünen yazı değeri ayarlanır. @string
ifadesi values klasörü altındaki string.xml dosyasını gösterir.
Burada textler tanımlanır ve adları ile erişilebilir. Bu çoklu dil desteği
sağlanması için faydalı bir özelliktir.
İstenirse android:text= “Değer “ şeklinde direkt atama yapılabilir.
Nesneler
Button
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text"
... />
Image Button
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_icon"
... />
Nesneler
Image and Text Button
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:drawableLeft="@drawable/button_icon"
... />
Button Click Event
android:onClick="sendMessage"
public void sendMessage(View view) {
// Do something in response to button click
}
Nesneler
Button ClickListener
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});
Nesneler
Text Field
<EditText
android:id="@+id/email_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/email_hint"
android:inputType="textEmailAddress" />
•
•
•
•
•
android:inputType:
"text"Normal text keyboard.
"textEmailAddress"Normal text keyboard with the @ character.
"textUri"Normal text keyboard with the / character.
"number"Basic number keypad."phone"Phone-style keypad.
Nesneler
Text Field
"textCapSentences" Normal text keyboard that capitalizes the first letter for
each new sentence.
"textCapWords" Normal text keyboard that capitalizes every word. Good for
titles or person names.
"textAutoCorrect" Normal text keyboard that corrects commonly misspelled
words.
"textPassword" Normal text keyboard, but the characters entered turn into
dots.
"textMultiLine" Normal text keyboard that allow users to input long strings of
text that include line breaks (carriage returns).
Nesneler
Text Field
<EditText
android:id="@+id/postal_address"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/postal_address_hint"
android:inputType="textPostalAddress|
textCapWords/>
Nesneler
Checkboxes
<CheckBox android:id="@+id/checkbox_meat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/meat"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/checkbox_cheese"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cheese"
android:onClick="onCheckboxClicked"/>
Nesneler
Radio Buttons
<RadioButton android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pirates"
android:onClick="onRadioButtonClicked"/>
<RadioButton android:id="@+id/radio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ninjas"
android:onClick="onRadioButtonClicked"/>
Nesneler
Toggle Buttons
<ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"
android:onClick="onToggleClicked"/>
public void onToggleClicked(View view) {
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Enable vibrate
} else {
// Disable vibrate
}
}
Olaylar
onClick()
From View.OnClickListener. This is called when the user either touches
the item (when in touch mode), or focuses upon the item with the
navigation-keys or trackball and presses the suitable "enter" key or
presses down on the trackball.
onLongClick()
From View.OnLongClickListener. This is called when the user either
touches and holds the item (when in touch mode), or focuses upon the
item with the navigation-keys or trackball and presses and holds the
suitable "enter" key or presses and holds down on the trackball (for one
second).
Olaylar
onFocusChange()
From View.OnFocusChangeListener. This is called when the user
navigates onto or away from the item, using the navigation-keys or
trackball.onKey()
From View.OnKeyListener. This is called when the user is focused on the
item and presses or releases a hardware key on the device.
Olaylar
onTouch()
From View.OnTouchListener. This is called when the user performs an
action qualified as a touch event, including a press, a release, or any
movement gesture on the screen (within the bounds of the item).
onCreateContextMenu()
From View.OnCreateContextMenuListener. This is called when a Context
Menu is being built (as the result of a sustained "long click )
Download

android:orientation= " vertical "