• 14.03.2023
  • 416
  • View Binding ile Resim GalerisiYazılı Ders

View Binding ile Resim Galerisi

View Binding, kullanıcı arayüzü (UI) bileşenlerini içinde barındıran layout dosyası ile “.java” uzantılı kod dosyasını birbirine bağlamayı hızlı ve kolay bir biçimde sağlayan Google’a ait bir kütüphanedir.View Binding sayesinde layout dosyası içindeki mobil uygulama tasarım ekranına eklenen ögeler, “findViewBinding” metoduna gerek kalmadan her yerden erişilebilir hâle getirilir. Bu sayede hem hızlı bir çalışma ortamı sağlanır hem de birçok gereksiz kod yazılmaz. Küçük uygulamalarda fark edilmese de büyük uygulamalarda yer alan birçok ögenin findViewBinding ile tek tek eklenmesi çok uygun değildir.

Öncelikle build.gradle (Module) dosyası içinde viewBinding true olarak ayarlanır.

android { } etiketi içine aşağıdaki kodları ekleyiniz

    buildFeatures {         viewBinding true } }

bu sayede arama işlemi yapmadan direk objeye hitap edebileceğiz.

Activity içine bir adet imageView ( id=imageViewGorsel ) ve bir adet textview ( id=textViewBilgi ) ve iki adet buton ekleyiniz.Butonların onclick özelliğini methodlara bağlayınız.

activity_main Xml Design:

 

MainActivity Java Code:

package com.example.gorseldegistir;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

import com.example.gorseldegistir.databinding.ActivityMainBinding;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private ActivityMainBinding binding;
    ArrayList\<\Gorsel\>\ gorselArrayList;
    int seciliSiraNo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        View view = binding.getRoot();
        setContentView(view);
        gorselArrayList = new ArrayList<>();
        //R.drawable.balon;
        Gorsel balon = new Gorsel("Sarı Balon",1,R.drawable.balon);
        Gorsel cicek = new Gorsel("Mavi Çiçek",2, R.drawable.cicek);
        Gorsel kelebek = new Gorsel("Mavi Kelebek",3, R.drawable.kelebek);
        Gorsel kus = new Gorsel("Yuvada Kuş",4,R.drawable.kus);

        gorselArrayList.add(balon);
        gorselArrayList.add(cicek);
        gorselArrayList.add(kelebek);
        gorselArrayList.add(kus);

        binding.imageViewGorsel.setImageResource(gorselArrayList.get(0).foto);
        binding.textViewBilgi.setText("Bilgi :"  + gorselArrayList.get(0).bilgi.toString());
        seciliSiraNo=0;
    }
  public void geriGelme(View view){
        if(seciliSiraNo\>\0){
            seciliSiraNo--;
            binding.imageViewGorsel.setImageResource(gorselArrayList.get(seciliSiraNo).foto);
            binding.textViewBilgi.setText("Bilgi : " + gorselArrayList.get(seciliSiraNo).bilgi.toString());
        }
        else
        {
            seciliSiraNo=gorselArrayList.size()-1;
            binding.imageViewGorsel.setImageResource(gorselArrayList.get(seciliSiraNo).foto);
            binding.textViewBilgi.setText("Bilgi : " + gorselArrayList.get(seciliSiraNo).bilgi.toString());
        }
    }
    public void ileriGitme(View view){
        if(seciliSiraNo\<\gorselArrayList.size()-1){
            seciliSiraNo++;
            binding.imageViewGorsel.setImageResource(gorselArrayList.get(seciliSiraNo).foto);
            binding.textViewBilgi.setText("Bilgi : " + gorselArrayList.get(seciliSiraNo).bilgi.toString());
        }
        else
        {
            seciliSiraNo=0;
            binding.imageViewGorsel.setImageResource(gorselArrayList.get(seciliSiraNo).foto);
            binding.textViewBilgi.setText("Bilgi : " + gorselArrayList.get(seciliSiraNo).bilgi.toString());
        }
    }

}

Kodlardaki gereksiz  \ işaretlerini kaldırınız.

Gorsel Class Code:

package com.example.gorseldegistir;

public class Gorsel {
    String bilgi;
    int siraNo;
    int foto;

    public Gorsel(String bilgi, int siraNo, int foto) {
        this.bilgi = bilgi;
        this.siraNo = siraNo;
        this.foto = foto;
    }
}



Resimleri indirmek için tıklayınız

Sonuç:

YORUM YAP