Android UI Tasarımı: Layout, Widget ve Material Design ile Modern Arayüzler Oluşturma

AlKaN

RootAdmin
Yönetici
Katılım
20 Şubat 2025
Mesajlar
114
Tepkime puanı
6
Konum
Ankara
Android UI Tasarımı: Layout, Widget ve Material Design ile Modern Arayüzler Oluşturma

İçeriklerden Faydalanmak için Üye olmanız Gerekmektedir. Giriş yap veya üye ol.

Kullanıcı arayüzü (UI), uygulamanızın ilk izlenimidir. İyi tasarlanmış bir UI, kullanıcı memnuniyetini artırırken, kötü tasarım uygulamayı başarısız yapabilir. Bu rehberde, Android'de modern ve kullanıcı dostu arayüzler oluşturmayı öğreneceksiniz.

Layout Türleri
LinearLayout

Bileşenleri satır veya sütun halinde düzenler.

Java:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
   
    <TextView android:text="İlk" />
    <TextView android:text="İkinci" />
   
</LinearLayout>

RelativeLayout

Bileşenleri birbirine göre konumlandırır.

Kod:
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
   
    <TextView
        android:id="@+id/title"
        android:text="Başlık" />
       
    <TextView
        android:layout_below="@id/title"
        android:text="Açıklama" />
       
</RelativeLayout>

ConstraintLayout

Modern ve esnek layout sistemidir. Kompleks UI'lar için önerilir.

Java:
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
   
    <TextView
        android:id="@+id/title"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="Başlık" />
       
</androidx.constraintlayout.widget.ConstraintLayout>

FrameLayout

Bileşenleri üst üste yığar. Genellikle Fragment'ler için kullanılır.

İçeriklerden Faydalanmak için Üye olmanız Gerekmektedir. Giriş yap veya üye ol.


Temel Widget'lar
TextView

Metin göstermek için kullanılır.

Java:
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Merhaba"
    android:textSize="18sp"
    android:textColor="#000000" />

EditText

Kullanıcı girişi için kullanılır.

Java:
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Ad soyad girin"
    android:inputType="text" />

Button

Tıklanabilir düğme oluşturur.

Java:
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Gönder" />

ImageView

Görüntü
göstermek için kullanılır.

Java:
<ImageView
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@drawable/ic_launcher" />

RecyclerView

Liste veya grid göstermek için kullanılır.

Java:
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

Material Design
Material Design, Google'ın modern tasarım felsefesidir. Tutarlı, estetik ve işlevsel arayüzler oluşturmaya yardımcı olur.

Material Design 3 Özelikleri:

  • Dinamik Renk: Cihaz tema rengine göre otomatik renk ayarlaması.
  • Basit Typography: Açık ve okunması kolay font kullanımı.
  • Gölgeler ve Yükseklik: 3D efekti oluşturmak için gölge kullanma.
  • Boşluk Kullanımı: Görsel denge için yeterli boşluk.


Material Design Kütüphanesi

Kullanmabuild.gradle
dosyasına ekleyin:

Java:
dependencies {
    implementation 'com.google.android.material:material:1.10.0'
}

Material Button Örneği

Java:
<com.google.android.material.button.MaterialButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Gönder"
    app:cornerRadius="8dp" />

Material TextField Örneği

Java:
<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="E-posta">
   
    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
       
</com.google.android.material.textfield.TextInputLayout>

Tema ve Stil
Tema Oluşturma

res/values/themes.xml
dosyasında tema tanımlayın:

Java:
<style name="Theme.MyApp" parent="Theme.Material3.DayNight">
    <item name="colorPrimary">@color/primary_color</item>
    <item name="colorSecondary">@color/secondary_color</item>
    <item name="colorTertiary">@color/tertiary_color</item>
</style>

Renk Tanımlama

res/values/colors.xml
dosyasında:

Java:
<color name="primary_color">#6750A4</color>
<color name="secondary_color">#625B71</color>
<color name="tertiary_color">#7D5260</color>

Responsive Tasarım

Farklı ekran boyutlarında çalışan arayüzler tasarlamak önemlidir.

ConstraintLayout ile Responsive Tasarım

Java:
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
   
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_margin="16dp" />
       
</androidx.constraintlayout.widget.ConstraintLayout>

Layout Qualified Dosyaları

Farklı ekran boyutları için ayrı layout dosyaları oluşturun:
  • layout/ - Telefon
  • layout-land/ - Yatay yönelim
  • layout-sw600dp/ - Tablet

Liste Gösterme (RecyclerView)
Adapter Yazma

Java:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> items;
   
    public MyAdapter(List<String> items) {
        this.items = items;
    }
   
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }
   
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.textView.setText(items.get(position));
    }
   
    @Override
    public int getItemCount() {
        return items.size();
    }
   
    static class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
       
        ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
        }
    }
}

RecyclerView Kurma

Java:
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));

List<String> items = Arrays.asList("Item 1", "Item 2", "Item 3");
MyAdapter adapter = new MyAdapter(items);
recyclerView.setAdapter(adapter);

Önemli UI İpuçları
Okunabilirlik: Yeterli kontrast ve font büyüklüğü kullanın.
Dokunma Hedefleri: Düğmeler en az 48dp × 48dp olmalıdır.
Tutarlılık: Aynı renk ve stil kurallarını tüm uygulamada kullanın.
Animasyon: Ani geçişler yerine yumuşak animasyonlar kullanın.
Erişilebilirlik: Ekran okuyucular için uygun açıklama etiketleri ekleyin.
 
eline emegine saglik muhtesem bir anlatim olmus
 
Geri
Üst