Android Studio 2019 Canvas Custom View Oluşturma, layouta ekleme

Arif Ceylan/ Ocak 27, 2019/ Android Programlama/ 0 comments

Androidde Textview, EditView gibi viewler bulunmaktadır. Siz de kendi viewinizi yapabilir, projeye aynen bu bileşenleri eklediğiniz gibi ekleyebilirsiniz. Bu bileşenler layout veya content xml sayfalarından eklenmektedir.

Bu örneğimizde bir CustomView.java dosyası oluşturacak ve bunun içerisinde canvas ile bir dikdörtgen çizdireceğiz. Canvas sayesinde istediğiniz çizimleri yapabilir, çizim uygulamaları oluşturabilir, animasyonlar ve oyunlar da tasarlayabilirsiniz.

Daha önce yapmış olduğum uygulamanın içerisine bu customviewi aşağıdaki resimde görüleceği üzere yerleştirdim.

Main Activityde herhangi bir kod yazmaya gerek yok. Sadece layout dosyasında viewimizi ekleyeceğiz. Viewimizin kodları aşağıda. CustomView.java dosyası… View classından extend ediyoruz…

  package com.ceylan.arif.navdrawerornek;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;

public class CustomView extends View {
private Rect rectangle; //dikdörtgen için rectangle tanımlaması
    private Paint paint; //renk ve biçimler için paint nesnesi tanımlaması

    //consturterlar
    public CustomView(Context context) {
        super(context);

    }

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomView(Context context,  AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    //Customviewin çizilmesi esnasında ondraw metodu çalışır. bu metodu override ediyoruz
    @Override
    protected void onDraw(Canvas canvas) {
        int x = 50;
        int y = 50;
        int sideLength = 200;

        // kenarlık boyutları parametre olarak verilen dikdörtgeni oluşturuyoruz
        rectangle = new Rect(x, y, sideLength, sideLength);


        // paint nesnesi oluşturup renklerini veriyor ve boyuyoruz
        paint = new Paint();
        paint.setColor(Color.GRAY);
        canvas.drawColor(Color.BLUE);
        canvas.drawRect(rectangle, paint);
    }

}

Layout dosyamız ekleyeceğimiz kod da şu şekilde;

<view class=”com.ceylan.arif.navdrawerornek.CustomView”
android:layout_width=”wrap_content”
android:layout_height=”200dp”
/>

Tabii burada sizin bazı bölümleri değiştirmeniz gerekecek. Sizin projenizin paket ismiyle benimki aynı olmayacağı için oraları güncellemezseniz hata alırsınız.

İnternetteki örneklerde genelde activitye direkt canvas ile boyama gösterilmekte. Başka viewler eklemek istediğinizde de sorunlarla karşılaşmaktasınız.

Bu uygulamayla o sorunla karşılaşmayacaksınız.

İyi kodlamalar.

Share this Post

Leave a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*