Saat mengembangkan aplikasi Android, salah satu komponen dasar adalah Melihat. Satu Melihat digunakan untuk mewakili antarmuka pengguna (UI), seperti: Misalnya tombol, teks dan gambar. Namun, terkadang kita perlu membuat komponen UI khusus yang berbeda dari yang disediakan oleh Android. Untuk ini kita bisa Tampilan Kustom yang disesuaikan dengan persyaratan aplikasi.
Berikut adalah tutorial tentang cara membuat Tampilan Kustomdi Android:
Buat kelas untuk Tampilan Kustom
Langkah pertama adalah membuat kelas yang akan berisi Tampilan Kustom mewakili. Kelas ini harus dari salah satu kelas dasar Melihat-Kelas di Android, seperti B. MelihatBahasa Indonesia:Tampilan Teks atau Tampilan Gambar.
Misalnya, jika kita memiliki Tampilan Kustom dalam bentuk lingkaran dengan warna yang dapat diubah, kita dapat membuat kelas seperti ini:
kelas publik CircleView memperluas View {
Cat cat pribadi;
pribadi int warna = Warna.MERAH;
publik CircleView(Konteks konteks) {
super(konteks);
panas();
}
publik CircleView(Konteks konteks, AttributeSet attrs) {
super(konteks, atribut);
panas();
}
pribadi void init() {
cat = new Cat();
paint.setColor(warna);
paint.setAntiAlias(benar);
}
@Mengesampingkan
dilindungi void onDraw(Canvas kanvas) {
super.onDraw(kanvas);
int radius = Math.min(dapatkanLebar(), dapatkanTinggi()) / 2;
canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius, cat);
}
publik void setColor(int warna) {
ini.warna = warna;
paint.setColor(warna);
membatalkan(); // Meminta penggambaran ulang tampilan
}
}
Pada kode di atas kita memiliki kelas Tampilan Lingkaran dibuat oleh kelas Melihat mewarisi. Dalam metode sedang menggambar kita menggambar lingkaran dengan Kanvas Dan Cat.
Tambahkan Tampilan Kustom ke tata letak XML
Setelah kami menyiapkan kelas untuk Tampilan Kustom kita dapat memasukkannya ke dalam tata letak XML seperti elemen Android lainnya.
Misalnya, untuk Tampilan Lingkaran ke dalam tata letak XML, kami menulis kode berikut:
<com.contoh.aplikasiku.CircleView
android:id=”@+id/tampilanlingkaran”
android:lebar_tata letak=”200dp”
android:ketinggian_tata letak=”200dp”/>
Pastikan nama paket ditentukan dengan benar saat Anda Tampilan Kustom menambahkan, misalnya B. com.contoh.aplikasiku.CircleView.
Ubah properti Tampilan Kustom
Setelah Tampilan Kustom dalam tata letak XML, kita dapat menampilkan propertinya saat runtime dalam Aktivitas atau Fragmen mengubah:
Tampilan Lingkaran Tampilan Lingkaran = findViewById(R.id.lingkaranTampilan);
circleView.setColor(Warna.BIRU); // Mengubah warna lingkaran
Dengan cara ini kita dapat mengubah tampilan Tampilan Kustom berubah pada waktu proses sesuai kebutuhan.
Menambahkan atribut melalui XML (Opsional)
Kita juga dapat menambahkan kemampuan untuk menambahkan properti Tampilan Kustom untuk diubah melalui XML. Untuk melakukan ini, kita perlu menggunakan konstruktor Tampilan Lingkaran berubah menjadi sebuah AtributSet dan menambahkan metode untuk membaca nilai atribut.
Misalnya, untuk mengatur atribut lingkaranWarna untuk menambahkan dalam XML:
<com.contoh.aplikasiku.CircleView
android:id=”@+id/tampilanlingkaran”
android:lebar_tata letak=”200dp”
android:ketinggian_tata letak=”200dp”
aplikasi:circleColor=”#FF0000″/>
Kemudian kita bisa memasukkan kode tersebut Tampilan Lingkaran untuk membaca atribut ini:
publik CircleView(Konteks konteks, AttributeSet attrs) {
super(konteks, atribut);
TypedArray a = konteks.dapatkanTema().dapatkanAtributGaya(
attr,
R.gaya.CircleView,
0, 0);
mencoba {
warna = a.getColor(R.styleable.CircleView_circleColor, Warna.MERAH);
} Akhirnya {
a.daur ulang();
}
panas();
}
Jangan lupa untuk mengubah atribut dalam file tersebut res/nilai/atribut.xml untuk menyatakan:
<deklarasikan-gaya nama=”CircleView”>
<attr nama=”lingkaranWarna” format=”warna”/>
</deklarasikan-gaya>
Kesimpulan
Dengan mengikuti langkah-langkah yang dijelaskan di atas, kita dapat Tampilan Kustom di Android yang dapat digunakan untuk merepresentasikan komponen UI yang lebih kompleks atau terspesialisasi. Keuntungan dari sebuah Tampilan Kustom terletak pada fleksibilitas desain dan kontrol penuh atas tampilan dan perilaku elemen UI dalam aplikasi.