Site icon Mobilhanem

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ı

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
            }
        });
        

    }
}

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();
    }
}
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
Exit mobile version