İyi tasarlanmış bir özel görünüm, iyi tasarlanmış diğer tüm sınıflara benzer. Bir projeyi belirli bir grup işlevsellikleri basit bir arayüzde, CPU ve belleği verimli bir şekilde kullanır. İçinde proje yöneticisinin yanı sıra sınıfınızın iyi tasarlanmış bir görünümü varsa, özel bir görünüm aşağıdakileri yapmalıdır:
- Android standartlarına uygundur.
 - Android XML düzenleriyle çalışan özel stil özellikleri sağlayın.
 - Erişilebilirlik etkinlikleri gönderin.
 - Çeşitli Android platformlarıyla uyumlu olmalıdır.
 
Android çerçevesi, Google Analytics 4'te tarama odaklı bir görünüm oluşturmanıza bunların tümünü karşılayan gereksinimlerini karşılayın. Bu derste, temel çerçeveyi oluşturmak için Android çerçevesinin nasıl kullanılacağı bir görünümün işlevi sınıfını kullanır.
Daha fazla Özel görünüm bileşenleri hakkındaki bilgilere ulaşabilirsiniz.
Bir görünümü alt sınıfa ekleme
Android çerçevesinde tanımlanan tüm görünüm sınıfları
    View Sizin
    özel görünüm de
    View uzatın veya
    ve zaman kazanabilirsiniz.
    mevcut görünüm
    alt sınıflar (Button gibi).
Android Studio'nun görünümünüzle etkileşim kurmasına izin vermek için en azından
Parametre olarak Context ve AttributeSet nesnesi.
Bu oluşturucu, düzen düzenleyicisinin görünümünüzün bir örneğini oluşturmasına ve düzenlemesine olanak tanır.
Kotlin
class PieChart(context: Context, attrs: AttributeSet) : View(context, attrs)
Java
class PieChart extends View { public PieChart(Context context, AttributeSet attrs) { super(context, attrs); } }
Özel özellikleri tanımlama
Kullanıcı arayüzünüze yerleşik bir View eklemek için bunu bir XML öğesinde belirtin ve
kontrol et
görünüm ve davranışı temel alabilirsiniz. Dilerseniz özelleştirilebilir
görüntüler. Alıcı:
özel görünümünüzde bu davranışı etkinleştirmek için aşağıdakileri yapın:
- Bir 
<declare-styleable>kaynak öğesinde görünümünüz için özel özellikler tanımlayın. - XML düzeninizdeki özelliklerin değerlerini belirtin.
 - Çalışma zamanında özellik değerlerini alın.
 - Alınan özellik değerlerini görünümünüze uygulayın.
 
Bu bölümde, özel özelliklerin nasıl tanımlanacağı ve değerlerinin nasıl belirtileceği anlatılmaktadır. Bir sonraki bölümde alma ve uygulama hakkında bilgi edinebilirsiniz.
Özel özellikleri tanımlamak için projenize <declare-styleable>
     kaynakları ekleyin. Bu kaynakları, düzenli olarak
    res/values/attrs.xml dosyası yükleyin. İşte
    attrs.xml dosyası örneği:
<resources> <declare-styleable name="PieChart"> <attr name="showText" format="boolean" /> <attr name="labelPosition" format="enum"> <enum name="left" value="0"/> <enum name="right" value="1"/> </attr> </declare-styleable> </resources>
Bu kodda showText ve labelPosition olmak üzere iki özel özellik tanımlanmaktadır.
    ve tarz sahibi olan
    PieChart adlı varlık. Stil yapılabilir varlığın adı, genel olarak aynıdır.
    olarak isim
    sınıfın adı
    değeri gösterir. Bu kurala uymak zorunlu olmasa da
    pek çok popüler kod
    editörler, ifade tamamlama sağlamak için bu adlandırma kuralına güvenir.
Özel özellikleri tanımladıktan sonra, bunları yerleşik XML dosyalarında olduğu gibi kullanabilirsiniz.
    özellikleri hakkında daha fazla bilgi edinin. Tek
    fark, özel özelliklerinizin farklı bir ad alanına ait olmasıdır. Aidiyet hissi yerine
    http://schemas.android.com/apk/res/android ad alanına ise http://schemas.android.com/apk/res/[your package name] aittir. Örneğin,
    özellikleri
    PieChart:
    
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res-auto"> <com.example.customviews.charting.PieChart custom:showText="true" custom:labelPosition="left" /> </LinearLayout>
Uzun ad alanı URI'sini tekrarlamaktan kaçınmak için örnek,
            xmlns yönergesi. Bu yönerge, custom takma adını
            http://schemas.android.com/apk/res/com.example.customviews ad alanına bakalım.
            Ad alanınız için istediğiniz takma adı seçebilirsiniz.
Özel görünümü düzene ekleyen XML etiketinin adına dikkat edin. Bu tamamen
            uygun adı
            özel görünüm sınıfı. Görüntüleme sınıfınız iç sınıfsa daha da uygun hale getirin
            görünümünün dış sınıfının adıyla değiştirin.
            Örneğin,
            PieChart sınıfının içi PieView adlı bir sınıfa sahip. To
            özelliklerinizden biri, Google'ın
            com.example.customviews.charting.PieChart$PieView etiketini kullanmak.
Özel özellikler uygula
XML düzeninden bir görünüm oluşturulduğunda, XML etiketindeki tüm öznitelikler okunur.
            kaynaktan
            paket haline getirilir ve görünümün oluşturucusuna bir
            AttributeSet
            Her ne kadar
            değerleri doğrudan AttributeSet kaynağından okuyabilir ve böylece
            bazı dezavantajları vardır:
- Özellik değerlerindeki kaynak referansları çözümlenmez.
 - Stiller uygulanmaz.
 
Bunun yerine, AttributeSet öğesini şuraya geçirin:
            obtainStyledAttributes().
            Bu yöntem bir
            TypedArray.
            dizisi
            değeri şu şekildedir:
            ve stillerini ayarlamalısınız.
Android kaynak derleyici, arama yapabilmeniz için birçok işlem yapar.
            obtainStyledAttributes().
            daha kolay olur. Her <declare-styleable> için
            res/ dizinindeki kaynak herhangi bir kaynaksa, oluşturulan R.java hem bir özellik dizisi hem de
            Kimlikler ve
            dizideki her özelliğin dizinini tanımlayan sabit değerlerdir. Önceden tanımlı
            okunacak sabit değerler
            TypedArray özellikleri. Bunu şu şekilde yapabilirsiniz:
            PieChart sınıfı
            şu özelliklerini okur:
Kotlin
init { context.theme.obtainStyledAttributes( attrs, R.styleable.PieChart, 0, 0).apply { try { mShowText = getBoolean(R.styleable.PieChart_showText, false) textPos = getInteger(R.styleable.PieChart_labelPosition, 0) } finally { recycle() } } }
Java
public PieChart(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.getTheme().obtainStyledAttributes( attrs, R.styleable.PieChart, 0, 0); try { mShowText = a.getBoolean(R.styleable.PieChart_showText, false); textPos = a.getInteger(R.styleable.PieChart_labelPosition, 0); } finally { a.recycle(); } }
TypedArray nesnenin
          paylaşılan bir kaynaktır
            ve kullanıldıktan sonra geri dönüştürülmesi gerekir.
Mülk ve etkinlik ekleme
Özellikler, görüntülemelerin davranışını ve görünümünü kontrol etmenin güçlü bir yoludur, ancak
            yalnızca okunabilirler
            ilk kullanıma sunulduğunda. Dinamik davranış sağlamak için bir mülk alıcı ve
            her biri için belirleyici çift
            özel özellik. Aşağıdaki snippet'te PieChart ürününün bir mülkü nasıl gösterdiği gösterilmektedir
            adı showText:
Kotlin
fun isShowText(): Boolean { return mShowText } fun setShowText(showText: Boolean) { mShowText = showText invalidate() requestLayout() }
Java
public boolean isShowText() { return mShowText; } public void setShowText(boolean showText) { mShowText = showText; invalidate(); requestLayout(); }
setShowText öğesinin, invalidate() yöntemini çağırdığına dikkat edin
            ve requestLayout(). Bu çağrılar son derece önemlidir.
            düzgün şekilde çalışmasını sağlamak için. İhtiyacınız olanlar
            özelliğini değiştirebilecek herhangi bir değişiklikten sonra görünümü geçersiz kılmaya
            görünüm, böylece
            sistemin yeniden çizilmesi gerektiğini bilir. Benzer şekilde, aşağıdaki durumlarda yeni bir düzen istemeniz gerekir:
            Bir özelliğin başka şekilde değişmesi
            görünümün boyutunu veya şeklini etkileyebilecek öğeler. Bu yöntem çağrılarını unutmak,
            zor bulunan
            hatalar.
Özel görünümler, önemli etkinlikleri iletmek için etkinlik işleyicileri de desteklemelidir. Örneğin,
            örnek, PieChart
            dinleyicilere bilgi vermek için OnCurrentItemChanged adlı özel bir etkinlik sunar.
            kullanıcı, sayfayı döndürdü.
            pasta grafiğini tıklayın.
Özellikle sizin tarafınızdan tek kullanıcı siz olduğunuzda mülkleri ve etkinlikleri göstermeyi kolayca unutabilirsiniz. görebilirsiniz. Görünümünüzün arayüzünü dikkatli bir şekilde tanımlamak için zaman ayırırsanız, gelecekte bakım işlemleri daha az azaltılır gösterir. Görünür öğeleri etkileyen tüm özellikleri her zaman görünüşü ya da davranışını görünümünü seçin.
Erişilebilirliğe uygun tasarım
Özel görünümünüz çok çeşitli kullanıcıları desteklemelidir. Buna, engelli bireylerin görmelerini veya dokunmatik ekranları kullanmalarını engelleyebilirsiniz. Engelli kullanıcıları desteklemek amacıyla şunları yapın:
- Giriş alanlarınızı 
android:contentDescriptionile etiketleyin özelliğini gönderin. sendAccessibilityEvent()numaralı telefonu arayarak erişilebilirlik etkinliklerini gönderin gerektiğini unutmayın.- D-pad veya iztopu gibi alternatif kumandaları destekleyin.
 
Erişilebilir görünümler oluşturma hakkında daha fazla bilgi için Uygulamaları daha erişilebilir hale getirin.