Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Android Button Kullanımı ile devam ediyoruz.
Öncelikle xml layout kısmında bir button nasıl tanımlanır bakalım:
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_id" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Giriş Yap" /> </RelativeLayout>
Ekran çıktısı:
Şimdi oluşturduğumuz butona erişme ve tıklama olaylarının nasıl yapıldığına bakalım;
Tıklama Olayları
- Aşağıdaki kodlama gördüğünüz gibi butona click eventi vererek tıklama olayındaki işlemleri gerçekleştirebiliriz.
MainActivity.java
public class MainActivity extends AppCompatActivity { private Button bttn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bttn = (Button)findViewById(R.id.button_id); bttn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // buton tıklama anında çalışacak kısım } }); } }
- Aşağıdaki yapıda gördüğünüz gibi butona direk olarak xml layout kısmından android:onClick kısmına yazdığımız method ile tıklama olayını tetikleyebiliriz.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button_id" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickMethod" android:text="Giriş Yap" /> </RelativeLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void clickMethod(View view) { Toast.makeText(getApplicationContext(),"Deneme",Toast.LENGTH_LONG).show(); } }
- Aşağıdaki yapıda gördüğünüz gibi OnClickListener methodunu implement ettiğimizde onClick eventini tanımlamamızı isteyecektir. Bu şekilde tanımlama yaptıktan sonra tıklama olayını tetikleyebiliriz.
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button bttn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bttn = (Button)findViewById(R.id.button_id); bttn.setOnClickListener(this); } @Override public void onClick(View v) { Toast.makeText(getApplicationContext(),"Deneme",Toast.LENGTH_LONG).show(); } }
OnLongClickListener Kullanımı:
Normal tıklama olayının kullanış şekillerini gösterdik şimdi de OnLongClickListener ile uzun tıklama olayınının nasıl gerçekleştiğine bakalım.
public class MainActivity extends AppCompatActivity { private Button bttn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bttn = (Button)findViewById(R.id.button_id); bttn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(getApplicationContext(),"Deneme",Toast.LENGTH_LONG).show(); return false; } }); } }
Buton içeriğimizin sol tarafına bir imaj konumlandırmak istersek yapmamız gerekenler;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_id" android:drawableLeft="@mipmap/ic_launcher" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Giriş Yap" /> </RelativeLayout>
Ekran çıktısı:
Buton içeriğimizin sağ tarafına bir imaj konumlandırmak istersek yapmamız gerekenler;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_id" android:drawableRight="@mipmap/ic_launcher" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Giriş Yap" /> </RelativeLayout>
Ekran çıktısı:
Butonumuzun içindeki text in rengini (textColor) ve buton arka plan rengini (background) ayarlayalım;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_id" android:background="#0000FF" android:textColor="#FFF" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Giriş Yap" /> </RelativeLayout>
Ekran çıktısı:
Butona tıklandığı anda tıklama efekti nasıl verebiliriz bakalım: öncelikle res->drawable klasörüne aşağıdaki xml dosyası oluşturalım. Böylece butonun ilk yaratıldığındaki rengini ve biçimini belirledik ayrıca butonun tıklama anındaki rengini ve biçimini de belirledik.
button_shape.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" > <shape android:shape="rectangle" > <corners android:radius="5dp" /> <solid android:color="#FF0000"/> <stroke android:width="1dp" android:color="#0dbcbf" /> </shape> </item> <item> <shape android:shape="rectangle" > <corners android:radius="5dp" /> <solid android:color="#0dbcbf"/> </shape> </item> </selector>
Yukarıda oluşturduğumuz button_shape dosyasını butonumuza arka plan olarak set ediyoruz.
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ccc" android:orientation="vertical" > <Button android:id="@+id/button_id" android:textAllCaps="false" android:background="@drawable/button_shape" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Giriş Yap" /> </RelativeLayout>
Bu şekilde elde ettiğimiz ekran görüntüsü aşağıdadır ( butona tıklanmadan önceki görünüm )
Butona tıklandığında button_shape sayesinde oluşturduğumuz tıklama efekti ile buton kırmızı oluyor ve gerçekten tıklanma hissini elde etmiş oluyoruz.
Aşağıdaki kod sayesinde butona set ettiğimiz text değerininin bütün harflerinin büyük harf ile başlamasını engellemiş oluyoruz.
android:textAllCaps="false"
Transparent bir buton oluşturmak istersek aşağıdaki kodu kullanmamız yeterli olacaktır.
android:background="@android:color/transparent"
Online bir şekilde android butonları oluşturmak ve dizayn etmek isterseniz bu linke tıklayıp incelemeniz faydalı olacaktır.
Dikdörtgen bir buton elde etmek istersek drawable klasörüne aşağıdaki xml doyasını oluşturduk.
rectangle_button_shape.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#27da9f" /> <stroke android:width="1dp" android:color="#000" /> </shape>
Ekran çıktısı:
Butonun kenar yarı çapına göre bir görüntü elde etmek istersek drawable klasörüne aşağıdaki xml doyasını oluşturduk.
radius_button_shape.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" android:radius="1dp" android:topLeftRadius="20dp" android:topRightRadius="20dp" /> <solid android:color="#27da9f" /> <stroke android:width="1dp" android:color="#000" /> </shape>
Ekran çıktısı:
Yukarıdaki buton görüntülerini elde etmek için drawable klasöründe ayrı bir xml dosyası oluşturup shape tag leri arasında gerekli kodlamaları gerçekleştirdik butonumuzda gözükmesi içinde arka plan olarak aşağıdaki gibi belirtiyoruz.
android:background="@drawable/rectangle_button_shape"
Kendi butonunuzu online bir şekilde oluşturmak isterseniz aşağıdaki link gerçekten çok yararlı olacaktır.
http://angrytools.com/android/button/
Evet arkadaşlar Android Button Kullanımı aşamalarını sizlere detaylıca anlatmaya çalıştım. Umarım hepiniz için faydalı olmuştur.
Sıfırdan android dersleri için tıklayınız.
Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.
Bir daha ki dersimizde görüşmek dileğiyle..
37
Mükemmel bir makale emeği gecen herkese teşekkür ediyorum.
olumlu görüşleriniz için biz teşekkür ederiz.
.:Alper Bey merhaba, dersler devam edecek mi ? Yani bu 19. dersin devamı olacak mı ?
Merhaba, tabiki devam edeceğiz android derslerini yayınlamaya
Hocam merhalabar makaleniz çok yararlı,
Bir problemim var
iki tane buton um var, biri layout1 de diğeri layuot2 de,
1. butonu tıkladığımda layout 2 ye geçecek 2. butonu tıkladığımda layout 3 e geçecek fakat uygulama daha açılırken hata veriyor, yardımcı olurmusunuz ?
Bu yazıya link koymayı unutmuşsun sanırım.
“Online bir şekilde android butonları oluşturmak ve dizayn etmek isterseniz bu linke tıklayıp incelemeniz faydalı olacaktır.”
Merhaba, dikkatli kullanıcı bir başka 🙂 gözden kaçmış güncelledim kontrol edebilirsiniz, iyi çalışmalar.
xml kullanmadan ekrana bir seyler ekleyebilir miyiz ?
merhaba evet dinamik bir şekilde kod yazarak xml kullanmadan ekrana istediğin bileşenleri ekleyebilirsin.
selam.BEn de kendi uygulamami yapip para kazanmak isterim.BAna yardimci olursaniz sevinirim.
Başka sayfadan diğer sayfadaki butonun performClick olayı yada başka bir olayı varsa onu çağırıp diğer sayfaya gittiğimde ilgili butonun işlevini yapmış olduğunu görmek istiyorum bu mümkün mü ve nasıl yaparım