Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

Membuat Wallpaper Hidup di Android Menggunakan GIF Animasi

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by ⚡ Rova Rindrata (you can also view the original English article)

Pernahkah Anda melihat GIF animasi yang indah yang berulang mulus dan bertanya-tanya apakah Anda bisa menggunakannya sebagai wallpaper hidup di perangkat Android Anda? Nah, Anda bisa, dan dalam tutorial ini saya akan menunjukkan caranya.

Perkenalan

Membuat wallpaper hidup yang menarik dan indah dari awal hanya dengan menggunakan matematika dan kode untuk menghasilkan grafis bisa menjadi membosankan dan menyita waktu. Ini juga membutuhkan banyak kreativitas. Di sisi lain, menciptakan GIF animasi atau menemukan satu yang online jauh lebih mudah. Dalam tutorial ini, Anda akan belajar bagaimana mengubah animasi GIF menjadi wallpaper hidup.

Prasyarat

Pastikan Anda memiliki versi terbaru dari pengaturan Android Studio. Anda bisa mendapatkannya dari situs Pengembang Android.

Meskipun ada GIF animasi yang akan dilakukan, saya sarankan Anda mengunduh cinemagraph yang baik. Sebuah cinemagraph hanyalah sebuah GIF animasi—biasanya dibuat dari sebuah video—yang berulang dengan mulus. Anda bisa menemukan banyak yang bagus di Flickr.

Untuk tutorial ini, saya menggunakan cinemagraph yang dibuat oleh pengguna Flickr djandyw.com karena tersedia dengan lisensi Creative Commons.

1. Buat sebuah New Project

Mulai Android Studio, buat proyek baru, dan beri nama proyek GIFWallpaper. Pilih nama paket yang unik jika Anda berencana untuk menerbitkan aplikasi ini di Google Play.

Tetapkan SDK minimum ke API 8: Android 2.2 (Froyo).

Aplikasi kita tidak akan memiliki Activity, jadi pilih Add No Activity dan klik Finish.

2. Penjelasan Wallpaper

Wallpaper hidup membutuhkan file yang menjelaskannya. Buat file XML baru bernama res/xml/wallpaper.xml dan ganti isinya dengan XML berikut ini:

Label dan thumbnail sangat penting karena akan digunakan saat wallpaper muncul dalam daftar wallpaper yang ada pada perangkat Anda.

3. Edit Manifest-nya

Untuk menjalankan sebagai wallpaper hidup, aplikasi kita hanya membutuhkan satu izin, android.permission.BIND_WALLPAPER.

Wallpaper hidup berfungsi sebagai Service yang dapat menerima maksud action android.service.wallpaper.WallpaperService. Beri nama Service GIFWallpaperService dan tambahkan ke manifest proyek, AndroidManifest.xml.

Selanjutnya, untuk memastikan aplikasi hanya dipasang pada perangkat yang dapat menjalankan wallpaper hidup, tambahkan cuplikan berikut ke manifest:

4. Menambahkan GIF Animasi

Salin GIF animasi yang Anda download dari Flickr ke folder assets dari proyek. Saya telah menamainya GIF girl.gif.

5. Membuat Service

Buat kelas Java baru dan beri nama GIFWallpaperService.java. Kelas ini harus memperluas kelas WallpaperService.

Karena WallpaperService adalah kelas abstrak, Anda harus mengganti metode onCreateEngine-nya dan mengembalikan sebuah instance dari Engine Anda sendiri, yang dapat me-render frame dari GIF.

Untuk menggunakan GIF animasi, pertama Anda harus mengubahnya menjadi objek Movie. Anda dapat menggunakan metode decodeStream dari kelas Movie untuk melakukannya. Begitu objek Movie telah dibuat, kirimkan sebagai parameter ke constructor dari Engine kustom.

Inilah metode onCreateEngine yang akan terlihat seperti:

6. Membuat Engine

Mari mulai mengerjakan Engine sekarang. Buat kelas bernama GIFWallpaperEngine di dalam kelas GIFWallpaperService dan jadikan itu memperpanjang WallpaperService.Engine.

Tambahkan field berikut ke kelas baru ini:

  • frameDuration: integer ini mewakili penundaan antara operasi re-draw. Nilai 20 memberi Anda 50 frame per detik.
  • visible: boolean ini memungkinkan engine mengetahui apakah wallpaper hidup saat ini terlihat di layar. Ini penting, karena kita seharusnya tidak menggambar wallpaper saat tidak terlihat.
  • movie: Ini adalah GIF animasi dalam bentuk objek Movie.
  • holder: Ini mengacu pada objek SurfaceHolder yang tersedia untuk engine. Ini harus diinisialisasi dengan meng-override metode onCreate.
  • handler: Ini adalah objek Handler yang akan digunakan untuk memulai Runnable yang bertanggung jawab untuk benar-benar menggambar wallpaper.

Kelas Anda sekarang akan terlihat seperti ini:

Selanjutnya, buatlah sebuah metode bernama draw yang menggambar konten dari GIF animasi. Mari kita rinci metode ini:

  • Kita pertama-tama memeriksa apakah variabel visible diatur ke true. Kita hanya melanjutkan jika memang demikian.
  • Gunakan metode lockCanvas dari SurfaceHolder untuk mendapatkan Canvas untuk menggambar.
  • Gambar sebuah frame GIF animasi di Canvas setelah penskalaan dan memposisikannya.
  • Setelah semua penggambaran selesai, kirimkan Canvas kembali ke SurfaceHolder.
  • Perbarui frame GIF animasi saat ini dengan menggunakan metode setTime dari objek Movie.
  • Panggil kembali metodenya menggunakan handler setelah menunggu milidetik frameDuration.

Metode draw tidak pernah dipanggil secara langsung. Itu selalu dipanggil dengan menggunakan sebuah objek Handler dan Runnable. Karena itu, mari kita buat objek Runnable pada field kelas dan menyebutnya drawGIF.

Tambahkan kode berikut ke kelas GIFWallpaperService:

Metode onVisibilityChanged secara otomatis dipanggil kapan pun visibilitas wallpaper berubah. Kita perlu menimpanya dan, berdasarkan nilai argumen visible, mulai atau hentikan drawGIF. Metode removeCallbacks dari Handler digunakan untuk menghentikan drawGIF yang tertunda.

Akhirnya, timpa metode onDestroy dari Engine untuk menghentikan drawGIF yang tertunda berjalan jika wallpaper dinonaktifkan.

7. Kompilasi dan Install

Wallpaper hidup Anda sekarang sudah siap. Kompilasi dan pasang di perangkat Android Anda. Setelah terinstal, Anda akan bisa menemukan wallpaper di daftar wallpaper yang tersedia.

Kebanyakan launcher memberi Anda pilihan untuk mengganti wallpaper setelah memberi isyarat tap yang panjang. Atau, Anda bisa pergi ke pengaturan tampilan untuk mengganti wallpaper.

Jika GIF terlihat terlalu kecil atau tidak diposisikan dengan benar, maka kembali ke metode draw dan sesuaikan skala dan posisinya.

Kesimpulan

Anda sekarang tahu bagaimana menggunakan GIF animasi untuk membuat wallpaper hidup. Jangan ragu bereksperimen dengan lebih banyak GIF. Jika Anda berencana untuk menerbitkan wallpaper langsung di Google Play, pastikan Anda memiliki izin pembuat untuk menggunakan GIF animasi secara komersial. Kunjungi situs web Pengembang Android untuk mempelajari lebih lanjut tentang kelas WallpaperService.


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.