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
}
});
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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();
}
}
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();
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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;
}
});
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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> <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”
android:textAllCaps=“false” |
Transparent bir buton oluşturmak istersek aşağıdaki kodu kullanmamız yeterli olacaktır.
android:background=”@android:color/transparent”
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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”
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..
34