Android Button Kullanımı

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

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

11 Yorum

  • 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.

    • 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

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?