ApakahAnda mencari gambar tentang Cara Membuat Widget Bergerak? Jelajahi koleksi gambar, foto, dan wallpaper kami yang sangat luar biasa. Gambar yang baru selalu diunggah oleh anggota yang aktif setiap harinya, pilih koleksi gambar lainnya dibawah ini sesuai dengan kebutuhan untuk mulai mengunduh gambar. Kaliini saya akan berbagi tentang Cara Membuat Widget Recent Posts Bergerak di Blog. Mungkin memang widget recent posts ini telah disediakan Blogspot yang dapat sobat pasang dengan mudah. Namun ada kelebihan dengan widget Recent Posts yang satu ini yang membuat para Blogger lebih memilih widget ini daripada dengan yang telah disediakan Blogspot. Darisisi resource dan pengerjaan ada dua cara yang bisa dilakukan untuk membuat animasi. Cara Memasang Widget Animasi Naruto Yang Keren dan Lucu di Blog Cara membuat animasi naruto bergerak di pojok blog - Wah kembali lagi neh permathic. Pembuatan karakter tergantung pada 2 hal keterampilan menggambar tangan atau secara digital komputer. CaraMembuat Widget Pengumuman Bergerak Di Blog : Berikut ini merupakan langkah-langkah beserta tutorial yang dapat anda ikuti untuk bisa menerapkan pada blog agar mempercantik dan memperindah tampilan yang ada di blog anda tersebut, yuk dilihat dibawah ini ya. Pertama sekali login ke blogger kita dan masuk dasboard blogger. Vay Tiền Nhanh Chỉ Cáș§n Cmnd. translation by you can also view the original English article Berkat fleksibilitas yang luar biasa, ConstraintLayout widget telah menjadi "Swiss Army knife" layout untuk pengembang aplikasi Android. Namun, menambahkan animasi kompleks didalamnya, meskipun mungkin, dapat cukup memakan waktu. Itulah sebabnya mengapa Google memperkenalkan widget MotionLayout di I/O 2018. Widget MotionLayout, yang sekarang bagian dari Android Support Library, extend dari ConstraintLayout widget. Ini adalah sebuah widget yang unik yang memungkinkan Anda untuk membuat animasi dengan hanya menggunakan XML. Selain itu, itu menawarkan kendali yang mantap atas semua animasi. Dalam tutorial ini, saya akan menunjukkan kepada Anda bagaimana untuk menambahkannya ke proyek-proyek Android Studio Anda dan membuat beberapa animasi yang berbeda-beda Prasyarat Untuk mengikuti tutorial ini, Anda akan memerlukan Android Studio atau lebih tinggi perangkat atau emulator yang menjalankan Android API tingkat 21 atau lebih tinggi pemahaman dasar tentang ConstraintLayout widget 1. Menambahkan dependensi Untuk dapat menggunakan MotionLayout widget dalam proyek Android Studio Anda, Anda harus memiliki versi terbaru dari Constraint Layout support library sebagai dependency implementation. Selain itu, untuk menghindari konflik versi, pastikan Anda menyertakan ketergantungan untuk versi stabil terbaru v7 appcompat support library. Dengan demikian, tambahkan kode berikut untuk modul app file 1 implementation ' 2 implementation ' 2. Menentukan Layout MotionLayout widget dapat melakukan segala ConstraintLayout widget dapat lakukan. Oleh karena itu, Anda dapat dengan bebas mengganti setiap contoh keduanya Untuk sekarang, bagaimanapun, saya sarankan Anda membuat file XML baru layout dan menambahkan MotionLayout widget itu sebagai elemen root. 1 2 8 9 10 11 Selama tutorial ini, kita akan menganimasikan ImageView widget. Jadi tambahkan sebagai first child dari layout. 1 Anda bebas untuk menggunakan setiap drawable sebagai sumber ImageView widget. Dalam kode di atas, saya menggunakan color drawable. Selanjutnya, tambahkan tombol Anda dapat menekan untuk memulai animasi. Kode berikut memperlihatkan bagaimana posisi di pusat tata letak 1 Selain itu, untuk memantau progress animasi, tambahkan SeekBar widget untuk tata letak dan posisi itu di bawah tombol. Berikut adalah bagaimana 1 Terakhir, karena ada sebuah di-klik event handler yang berhubungan dengan tombol, pastikan Anda menentukan dalam activity Anda. 1 fun startv View { 2 // More code here 3 } 3. Membuat Motion Scene Anda mungkin telah memperhatikan bahwa kita tidak menambahkan ketidakleluasaan widget ImageView sedangkan menentukan tata letak. Itu karena kami akan menambahkan mereka ke motion scene. Motion secene adalah sebuah file XML yang berisi rincian tentang animasi yang Anda inginkan untuk membuat dengan MotionLayout widget. Untuk membuat motion secene baru, buatlah sebuah file XML resource dan menambahkan elemen MotionScene untuk itu. 1 2 5 6 7 8 Motion scene berisi unsur-unsur ConstraintSet yang menentukan constraint yang harus diterapkan ke widget pada titik-titik berbeda dalam animasi. Motion secene file biasanya berisi dua constraint set satu untuk awal animasi dan satu untuk akhir. Kode berikut memperlihatkan bagaimana untuk membuat dua constraint set yang akan membantu MotionLayout widget bergerak ImageView widget dari sudut kanan bawah layar ke sudut kiri atas 1 2 8 9 10 11 17 Perhatikan bahwa setiap elemen ConstraintSet selalu harus menentukan posisi yang diinginkan dan ukuran yang diinginkan. Hal ini penting karena itu akan menimpa informasi sebelumnya ditata layout. Untuk membantu MotionLayout widget memahami urutan di mana constraint set yang harus diterapkan, berikutnya Anda harus membuat sebuah elemen Transition. Dengan menggunakan atributnya intuitif bernama constraintSetStart dan constraintSetEnd, Anda dapat menentukan set mana harus diterapkan pertama dan yang terakhir. Elemen Transition juga memungkinkan Anda untuk menentukan durasi animasi. 1 6 7 Pada titik ini, motion scene ini lengkap. Namun, MotionLayout widget masih tidak menyadari hal itu. Jadi pergi kembali ke layout file XML, tambahkan atribut layoutDescription widget, dan set nilainya ke nama file adegan gerak. Jika nama file adegan gerak widget MotionLayout Anda sekarang harus terlihat seperti ini 1 9 10 ... 11 12 4. Mulai animasi Ketika Anda menjalankan aplikasi, MotionLayout widget akan secara otomatis berlaku kendala yang mengatur ditetapkan dalam atribut constraintSetStart elemen Transition. Oleh karena itu, untuk memulai animasi, semua yang perlu Anda lakukan adalah memanggil metode transitionToEnd widget. Kode berikut, yang harus ditambahkan ke event di klik handler yang Anda buat pada langkah sebelumnya, menunjukkan Anda bagaimana 1 Pada titik ini, jika Anda menjalankan app dan tekan tombol, Anda harus dapat melihat ImageView widget bergerak dengan lancar di layar. 5. Menangani Event Animasi Dengan melampirkan sebuah objek TransitionListener MotionLayout widget, Anda dapat memantau progress animasi. 1 2 object { 3 // More code here 4 } 5 Antarmuka TransitionListener memiliki dua metode yang abstrak, dan Android Studio akan secara otomatis menghasilkan Rintisan bertopik bagi mereka. Metode onTransitionCompleted disebut ketika transisi dari satu constraint diatur ke lain selesai. Untuk sekarang, mari kita menggunakannya untuk me-reset constraint ImageView widget dengan memanggil metode transitionToStart di dalamnya. 1 override fun onTransitionCompletedmotionLayout MotionLayout?, 2 currentId Int { 3 ifcurrentId == { 4 // Return to original constraint set 5 6 } 7 } Metode onTransitionChange ini dipanggil setiap kali perubahan progress animasi. Dengan demikian, progress adalah angka floating-point yang terletak antara nol dan satu. Kode berikut memperlihatkan bagaimana untuk memperbarui SeekBar berdasarkan progress animasi 1 override fun onTransitionChangemotionLayout MotionLayout?, 2 startId Int, 3 endId Int, 4 progress Float { 5 = ceilprogress * 100.toInt 6 } Silahkan jalankan app lagi untuk melihat dua animasi sekarang. 6. Membuat Key Frames Dalam animasi kami, ImageView widget bergerak dalam path yang tampak seperti garis lurus. Itu adalah karena MotionLayout widget diberikan hanya dua poin untuk bekerja dengan titik awal, yang di bagian bawah sudut kanan layar, dan titik akhir, yang adalah di sudut kiri atas layar. Jika Anda ingin mengubah bentuk dari path, Anda harus memberikan beberapa poin menengah, yang terletak antara titik awal dan akhir. Untuk melakukannya, Anda harus membuat key frame baru. Sebelum Anda mulai membuat key frame, Anda harus menambahkan elemen KeyFrameSet elemen Transition adegan gerak Anda. Di dalam element baru, Anda akan bebas untuk membuat sejumlah key frame. 1 2 3 MotionLayout widget mendukung banyak jenis key frame. Dalam tutorial ini, kita akan bekerja dengan hanya dua tipe KeyPosition frame dan KeyCycle frame. KeyPosition frame adalah orang-orang yang membantu Anda mengubah bentuk path. Sementara membuat mereka, pastikan Anda memberikan ID dari target widget, posisi sepanjang waktu, yang dapat menjadi nomor antara 0 dan 100, dan masukkan koordinat X atau Y yang ditentukan sebagai persentase. Koordinat dapat dibandingkan sebenarnya X atau Y kapak atau menjadi relatif terhadap jalan itu sendiri. Kode berikut memperlihatkan bagaimana untuk membuat dua key frame yang memaksa ImageView widget untuk mengikuti path yang menghindari tabrakan dengan tombol dan seek bar 1 6 7 Jika Anda menjalankan app sekarang, Anda akan melihat sebuah animasi yang terlihat seperti ini Anda adalah, tentu saja, bebas untuk menambahkan key frame lebih. Sebagai contoh, dengan menambahkan key frame berikut menjelang akhir timeline, Anda dapat membuat widget ImageView mengikuti path lebih bergelombang 1 Dengan menggunakan frame KeyCycle bersama dengan KeyPosition frame, Anda dapat menambahkan osilasi untuk animasi. Sekaligus menciptakan itu, Anda harus sekali lagi memberikan ID dari target widget, posisi sepanjang timeline, dan masukkan nilai properti yang terombang-ambing bolak. Selain itu, Anda harus mengkonfigurasi osilator dengan menyediakan rincian seperti bentuk gelombang untuk menggunakan dan periode gelombang. Kode berikut menciptakan frame KeyCycle yang menggunakan osilator gelombang sinus untuk secara berkala memutar ImageView widget dengan 50 derajat 1 Jalankan app lagi, Anda akan melihat sebuah animasi yang terlihat seperti ini 7. Membua tWidget Animasi interaktif Semua saat ini, Anda telah telah menekan sebuah tombol untuk memulai animasi. Sebuah tombol, namun, ini tidak selalu diperlukan karena MotionLayout widget memungkinkan Anda untuk langsung pasang event handler untuk widget yang sedang menjalankan animasi. Saat ini mendukung di-klik dan on-swipe event. Misalnya, Anda dapat menambahkan elemen OnClick berikut, yang menargetkan ImageView widget, di dalam elemen Transition motion scene Anda untuk membuat tombol redundant 1 Demikian pula, Anda dapat menggunakan elemen OnSwipe untuk memungkinkan pengguna untuk secara manual menarik ImageView widget di layar. Sementara membuat elemen, Anda harus memastikan Anda memberikan arah drag dan sisi widget yang harus bertindak sebagai drag handle. 1 Jika Anda menjalankan app lagi, Anda sekarang harus mampu men-drag ImageView widget. Kesimpulan Anda sekarang tahu bagaimana cara menggunakan MotionLayout widget untuk cepat menambahkan animasi kompleks, interaktif untuk aplikasi Android Anda. Anda dapat yakin bahwa animasi akan berjalan tanpa lag apapun atau jitter pada sebagian besar perangkat, selama anda menghindari nested view It's worth dicatat bahwa rilis mendatang Android Studio akan mencakup gerak Editor visual, yang kemungkinan akan lebih meningkatkan kegunaan dari widget. Untuk selengkapnya, lihat dokumentasi resmi. Widget adalah tools atau fitur tambahan yang bermanfaat bagi smartphone untuk memudahkan kerja user. Selain widget default yang menjadi bawaan OS, Anda juga bisa membuat widget Android sendiri dengan mudah, lho! Widget adalah fitur yang sudah tidak asing lagi bagi para pengguna Android. Bahkan, baru-baru ini fitur widget akhirnya ikut muncul juga di iOS 14. Kejadian ini serta-merta menandakan betapa widget adalah fitur yang sangat berguna bagi smartphone user. Seperti apa, sih, widget itu? Widget Android adalah tampilan mini dari aplikasi yang bisa bebas Anda sematkan ke home screen maupun lock screen. Meski berupa tampilan mini, ternyata widget Android adalah tools dengan performa tinggi, nyaris tidak ada bedanya dengan aplikasi biasa. Uniknya lagi, widget juga bisa dikustomisasi dengan bebas oleh user, baik dari segi ukuran maupun tampilannya. Alhasil, tak mengherankan banyak orang senang memakai widget lantaran tools-tools ini mampu mempercantik tampilan antarmuka layar smartphone mereka. Biasanya, widget Android adalah fitur bawaan milik OS. Akan tetapi belakangan ini mulai ditemukan cara untuk membuat widget Android dengan mudah memakai Android Studio. Penasaran ingin tahu bagaimana cara membuat widget Android dengan Android Studio? Yuk temukan cara-caranya pada artikel berikut ini – selamat membaca! Persiapan Membuat Widget Android StudioStep by Step Mengustomisasi Widget Android Studio Project Baru2. Buat Widget3. Kustomisasi Teks di Widget4. Membuat String Desain Widget Lanjutan Persiapan Membuat Widget Android Studio Proses membuat widget Android dapat dimulai dengan memakai software Android Studio. Apa itu Android Studio? Android Studio adalah IDE atau lingkungan pengembangan software yang paling ideal untuk beragam aplikasi Android. Kami tidak akan menjelaskan panjang lebar mengenai Android Studio di sini. Tetapi jika Anda penasaran, Anda bisa membaca artikel khusus Appkey bertajuk “Pedoman Lengkap Cara Update SDK Tools dan IDE Android Studio” dan berikut ini kami sediakan link dari artikel tersebut Anda juga bisa membaca artikel tersebut untuk mengetahui cara instalasi Android Studio agar bisa digunakan untuk membuat widget Android. Kembali lagi ke project membuat widget Android dengan Android Studio. Sebelum memulai, Anda akan memerlukan beberapa komponen penyusunan yaitu Objeck AppWidgetProviderInfo yang merupakan metadata widget Android yang ditentukan dalam XML. Objek ini mencakup frekuensi update dan class AppWidgetProvider. Tata letak tampilan widget yang juga ditentukan dalam XML. Penerapan aktivitas konfigurasi widget ketika widget diaktifkan serta dimodifikasi oleh user. Meski demikian, penerapan activity widget ini bersifat opsional. Penerapan metode dasar class AppWidgetProvider yang akan memungkinkan developer serta user untuk melakukan interaksi terprogram dengan widget Android yang telah dibuat. Penerapan metode dasar ini juga akan membantu Anda menerima info ketika widget diupdate, dihapus, diaktifkan maupun dinonaktifkan. Step by Step Mengustomisasi Widget Android Studio Sederhana Sudah mempersiapkan semua bahan-bahan di atas? Jika sudah, mari lanjutkan dengan cara membuat widget Android sederhana berikut ini. Kali ini kami akan mengajak Anda untuk melihat tata cara mengustomisasi widget tombol agar dapat diklik dan berubah warnanya. Disimak, ya! Project Baru Pertama, buatlah project baru di Android Studio. Caranya adalah Buka Android Studio yang sudah terinstall. Pilih create new project’ > beri nama project. Semisal Android widget. Klik template empty activity’ > beri nama activity dengan MainActivity’. Lanjutkan dengan memberi nama layout sebagai main_layout’. Selesai. 2. Buat Widget Android Studio sudah memiliki sejumlah template widget siap pakai yang bisa Anda drag and drop pada laman project aplikasi. Beberapa jenis template widget yang disediakan oleh Android Studio antara lain button, small button, radio button, plain textview, check, toggle button, switch, progress bar small, normal, large dan horizonal, spinner, web view, seek bar dan rating bar. Anda bisa memilih salah satu widget, semisal button. Drag dan drop seret dan letakkan widget pilihan ke bagian tengah layar project. Nantinya, Android Studio akan membantu Anda menyesuaikan kembali posisi widget di project. Anda juga bisa mengaturnya sendiri di properties Text Page XML. 3. Kustomisasi Teks di Widget Selanjutnya, kustomisasi teks di widget yang dipilih. Semisal pada widget button yang dipilih pada step 2. Anda bisa menyisipkan teks apa saja pada widget tersebut. Caranya adalah Perhatikan tombol button, Anda akan menemukan tulisan new button’ – ini adalah elemen teks pada button yang bisa Anda ganti. Klik 2x pada elemen tersebut > muncul halaman desain baru secara khusus > pilih text properties. Ubah teksnya dengan cara beralih ke tab text HTML > modifikasi properti menjadi android text. Untuk kustomisasi lanjutan seperti mengganti warna widget button, cek halaman text HTML > cari properti tombol, kemudian ketikkan android text = “change background color”. Contoh codingnya 4. Membuat String Resources Setelah melakukan kustomisasi di atas, Anda mungkin akan mendapati coding tersorot dengan icon lampu kuning highlight. Ini adalah peringatan atas string “change background code” yang perlu untuk diubah ke bentuk string resources. Namun tetap tenang, kode ini tidak menunjukkan bahwa coding Anda error. Ini cara mudah untuk memperbaiki kode string tersebut Klik icon lampu kuning yang ada di sebelah string code atau memakai kombinasi tombol alternatif Alt+Enter. Klik extract string resource’. Klik nama resource Anda. Simpan resources dengan mengklik ok’. Desain Widget Lanjutan Tahap terakhir adalah melakukan kustomisasi desain widget lanjutan pada properti OnClick di halaman desain. Caranya adalah Pergi ke halaman desain’ di Android Studio > klik widget button yang Anda buat. Scroll hingga menemukan opsi properti OnClick’. Klik properti OnClick. Di sini Anda bisa memilih metode Java yang akan dipanggil kapanpun widget button diklik user. Semisal untuk memanggil metode changeColor’ kode changeColor . Untuk bisa menjalankan metode change color, Anda harus menetapkan ID TextView dan Layout terlebih dahulu. Scroll ke bagian pojok kanan atas layar hingga menemukan box componen tree’. Klik menu layout > klik TextView > scroll hingga menemukan opsi id’. Terakhir, ubah id’ menjadi text’. Ulangi langkah yang sama untuk mengubah relative layout, namun komponen id’ diganti menjadi layout’. Lanjutkan dengan membuka tab > Anda akan menemukan metode onCreate yang berjalan otomatis kapanpun aplikasi dijalankan. Buat metode changeColor’ setelah onCreate dengan menambahkan kode berikut ke tab public void changeColorView view { RelativeLayout layout = RelativeLayoutfindViewById TextView text = TextViewfindViewById } Metode di atas akan mengganti warna layout tombol menjadi biru setelah diklik user, sedangkan teks di dalamnya akan berubah menjadi Page is Blue’. Sudah selesai. Anda bisa menyimpan project lalu mencoba menjalankannya pada emulator. Lakukan uji coba untuk melihat kondisi sebelum dan sesudah mengklik widget tombol, ya. Jika tombol sukses berubah warna menjadi biru, maka widget Anda sudah dapat beroperasi dengan baik. Demikianlah pembahasan artikel edisi kali ini tentang cara sederhana membuat widget Android Studio. Bagaimana, sudahkah kini Anda siap untuk mencoba mempraktekkan cara membuat widget android? Selamat mencoba mulai berpraktek, ya! Jasa Pembuatan Aplikasi, Website dan Internet Marketing PT APPKEY PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda. Menerapkan Animasi pada project Flutter Hai rekan-rekan developer! Sebelumnya saya sudah berbagi tentang bagaimana cara menerapkan sebuah multitype view pada RecyclerView. Nah, kali ini saya ingin berbagi sedikit tentang bagaimana cara menerapkan animasi pada project Flutter. đŸ’» Mulai Belajar Pemrograman Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional. Daftar Sekarang Tapi sebelum lanjut, kenapa kita perlu menerapkan sebuah animasi di aplikasi yang sedang kita kembangkan? Dengan menerapkan animasi, kita bisa menambah pengalaman pengguna ketika menggunakan aplikasi kita. Sebaliknya, jika kita tidak menerapkan sebuah animasi, aplikasi akan terlihat kaku. Alhasil, pengguna pun cepat bosan dan bisa memutuskan untuk uninstall aplikasi tersebut dari peranti mereka. Pada umumnya, animasi secara default terdapat pada transisi perpindahan halaman di dalam aplikasi. Animasinya pun beragam tergantung framework di setiap platform device. Menariknya, kita bisa mengubah dan mengganti animasi tersebut dengan animasi yang kita inginkan. Animasi Pada Project Flutter Hero Animation Untuk aplikasi yang dikembangkan dengan Flutter, terdapat built-in animasi yang bisa langsung kita gunakan untuk mempercantik dan membantu kita untuk menambah pengalaman pengguna. Yaitu, Hero Animation. Animasi yang digunakan untuk menampilkan transisi sebuah widget di dalam UI ketika berpindah halaman. Sebagai contoh, misal kita mempunyai aplikasi seperti berikut Aplikasi di atas terlihat kaku ketika berpindah halaman, namun ketika kita menerapkan hero animation, kita bisa menambahkan animasi pada widget ketika berpindah halaman seakan-akan widget tersebut dipindah dari satu halaman ke halaman lainnya seperti berikut Tidak sampai di situ, kita juga bisa mengubah bentuk dari widget tersebut saat ditampilkan pada halaman tujuan Struktur dari Hero Animation Pada dasarnya, Hero Animation adalah implementasi dari 2 dua widget Hero dengan struktur implementasinya sebagai berikut Hero widget sebagai start point. Widget hero yang digunakan untuk merepresentasikan grafis dan ditandai dengan sebuah tag yang ditampilkan pada source route. Hero widget sebagai endpoint, atau bisa disebut sebagai hero destination. Widget ini sama seperti widget yang ditampilkan pada source route, yaitu widget yang merepresentasikan grafis dan memiliki tag yang berada pada destination route. Pembuatan route yang berisi tujuan akhir dari hero animation. Route ini berfungsi untuk menentukan widget yang ada di akhir animasi. Menjalankan animasi dengan memanggil destination route yang berada di dalam stack navigator. Navigator akan melakukan operasi push dan pop untuk menjalankan hero animation dengan melakukan komparasi antara tag widget yang ada di source dan destination route. Flutter akan melakukan kalkulasi nilai batasan hero widget ukuran interpolasi dan posisi dari start point ke end point dan akan menjalankan animasi di overlay bagian yang berada di antara source dan destination route. Menerapkan Hero Animation Tanpa berlama-lama, mari kita praktekkan bagaimana menerapkan hero animation. Langsung saja buat project baru Flutter, bisa menggunakan VSCode atau Android Studio. Jika project baru sudah selesai dibuat, buka berkas kemudian modifikasi kode yang berada di dalamnya menjadi seperti berikut 1234567891011121314151617181920212223242526 import 'packageflutter/ main => runAppMyApp;class MyApp extends StatelessWidget { override Widget buildBuildContext context { return MaterialApp title 'Flutter Demo', theme ThemeData primarySwatch , home HomeScreen, ; }}class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , }} Sebelum lanjut menambahkan widget Hero, mari kita tambahkan terlebih dahulu asset gambar yang akan ditampilkan pada widget Image. Silakan unduh assetnya di tautan ini. Namun teman-teman juga bisa menggunakan asset sed. Lanjut, buatlah folder baru dengan nama asset kemudian tempat asset gambar yang sudah diunduh di dalamnya. Kemudian daftarkan asset gambar tersebut ke dalam berkas seperti berikut flutter The following line ensures that the Material Icons font is included with your application, so that you can use the icons in the material Icons class. uses-material-design true To add assets to your application, add an assets section, like this assets - asset/ Pastikan kembali indentasi tiap asset agar tidak terjadi error ketika melakukan sync packages. Setelah selesai, mari kita buka kembali berkas Kemudian lengkapi kode pada kelas HomeScreen dengan widget Hero dan beberapa widget lainnya seperti berikut 123456789101112131415161718192021222324252627282930313233343536 class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , body Center child Column mainAxisAlignment children [ Hero tag "logo", child "asset/ width 150, height 150, , , Padding padding const child RaisedButton child Text"To another screen", onPressed { MaterialPageRoutebuilder _ { return SecondScreen; }; }, , ], , , ; }} Di dalam widget Hero di atas terdapat sebuah widget Image yang menampilkan asset gambar yang sudah kita tambahkan sebelumnya. Selain itu, pada kelas HomeScreen di atas terdapat sebuah widget Button yang digunakan untuk menampilkan halaman baru menggunakan Navigator. Lanjut, buat lagi kelas baru di dalam bekas dengan nama SecondScreen. Buka, kemudian lengkapi kode di dalamnya seperti berikut 1234567891011121314151617181920 class AnotherScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Another Screen", , body Center child Hero tag "logo", child "asset/ width 75, height 75, , , , ; }} Jika sudah, secara keseluruhan berkas kurang lebih akan seperti berikut 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 import 'packageflutter/ main => runAppMyApp;class MyApp extends StatelessWidget { override Widget buildBuildContext context { return MaterialApp title 'Flutter Demo', theme ThemeData primarySwatch , home HomeScreen, ; }}class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , body Center child Column mainAxisAlignment children [ Hero tag "logo", child "asset/ width 150, height 150, , , Padding padding const child RaisedButton child Text"To another screen", onPressed { MaterialPageRoutebuilder _ { return SecondScreen; }; }, , ], , , ; }}class SecondScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Another Screen", , body Center child Hero tag "logo", child "asset/ width 75, height 75, , , , ; }} Sampai di sini kita sudah selesai menerapkan Hero Animation. Jika dijalankan, teman-teman akan melihat hasil yang seperti dicontohkan di awal. Nah, yang perlu diperhatikan dalam menerapkan Hero Animation adalah tag hero. Ketika terjadi eror seperti animasi yang tidak dapat berjalan dengan baik, pastikan kembali tag yang digunakan di widget yang berada pada source dan destination route adalah sama. Selain itu, di dalam 1 satu source route tidak boleh 2 dua atau lebih widget memiliki tag yang seperti ini akan kita temukan ketika ingin menerapkan Hero Animation pada widget ListView. Kesimpulan Seperti yang sudah disebutkan di awal, menerapkan animasi merupakan salah satu cara yang dapat kita gunakan untuk menambah pengalaman pengguna. Dengan bertambahnya pengalaman pengguna, jumlah instal dari aplikasi kita pun akan ikut bertambah. Tentu ini akan sangat menguntungkan. Sebenarnya masih banyak lagi animasi-animasi yang bisa kita terapkan terutama pada project Flutter. Tinggal bagaimana cara kita menerapkan dan menyesuaikan dengan aplikasi yang sedang dikembangkan. Mungkin cukup sampai di sini tutorial kali ini. Jika ada yang mau ditanyakan, silakan tulis di kolom komentar di bawah ya, dan untuk contoh project yang sudah kita coba buat, bisa dilihat di laman Github ini. Menerapkan Animasi pada project Flutter Salam! Ingin baca tulisan saya lainnya? Simak 1. 2. Ingin juga dapat info update tentang tutorial di blog kami via sosial media? bisa ! Follow kami ya Sejak Android widget aplikasi telah memungkinkan pengguna mendapatkan informasi, mengendalikan aplikasi, dan melakukan tugas penting, semuanya dari kenyamanan homescreens mereka. Dalam rangkaian bagian dua ini, saya akan menunjukkan kepada Anda bagaimana memberikan pengalaman pengguna yang lebih baik dengan menambahkan widget aplikasi ke proyek Androidmu. Pada akhir seri, Anda akan membuat widget yang Menampilkan beberapa kumpulan data. Melakukan tindakan unik saat pengguna berinteraksi dengan View tertentu di dalam tata letak widget itu. Pembaruan secara otomatis setiap kali satu periode waktu telah berlalu. Pembaruan dengan data baru sebagai respons terhadap interaksi pengguna. Di postingan pertama ini, kami akan menggunakan tools bawaan Android Studio untuk menghasilkan dengan cepat dan mudah semua file yang dibutuhkan untuk mengirimkan apa saja widget aplikasi Android. Kami kemudian akan memperluas fondasi ini untuk membuat widget yang mengambil dan menampilkan data dan merespons event onClick. Apa itu Widget Aplikasi? Widget aplikasi adalah aplikasi miniatur ringan yang biasanya termasuk dalam salah satu kategori berikut Widget informasi. Widget yang tidak dapat discroll yang menampilkan informasi penting, seperti widget cuaca atau jam. Koleksi widget. Widget yang dapat discroll yang menampilkan serangkaian elemen terkait, seperti galeri foto atau artikel dari publikasi yang sama. Widget koleksi biasanya didukung oleh sumber data, seperti Array atau database. Widget koleksi harus menyertakan ListView, GridView, StackView, atau AdapterViewFlipper. Kontrol widget. Widget yang bertindak sebagai remote control untuk aplikasi Anda, memungkinkan pengguna untuk memicu fungsi yang sering digunakan tanpa perlu meluncurkan aplikasi Anda. Aplikasi yang memutar musik sering memberikan widget yang memungkinkan pengguna bermain, menjeda, dan melewatkan trek langsung dari homescreen mereka. Widget hibrida. Mengapa membatasi diri Anda pada satu kategori, kapan Anda bisa memilih elemen ceri dari beberapa kategori? Sadarilah bahwa pencampuran dan pencocokan dapat menyebabkan pengalaman pengguna yang membingungkan, jadi untuk hasil terbaik Anda harus merancang widget Anda dengan satu kategori dan kemudian menambahkan elemen dari kategori lain sesuai kebutuhan. Misalnya, jika Anda ingin membuat widget yang menampilkan ramalan cuaca hari ini, namun juga memungkinkan pengguna melihat ramalan untuk hari dan lokasi yang berbeda, maka Anda harus membuat widget informasi dan kemudian menambahkan elemen kontrol yang diperlukan sesudahnya. Selain fungsi di atas, sebagian besar widget merespons event onClick dengan meluncurkan aplikasi yang terkait, serupa dengan shortcut aplikasi, namun juga dapat memberikan akses langsung ke konten tertentu dalam aplikasi itu. Widget aplikasi harus ditempatkan di dalam App Widget Host, yang paling umum adalah stok homescreen Android, walaupun ada beberapa Host Widget App pihak ketiga, seperti Nova Launcher dan Apex Launcher yang populer. Sepanjang seri ini, saya akan berbicara tentang widget sebagai sesuatu yang Anda tempatkan di homescreen, namun jika Anda memiliki ingatan samar untuk bisa memasang widget di layar lockscreen, ini bukan sekadar mimpi indah! Antara tingkat API 17 dan 20, adalah mungkin untuk menempatkan widget pada homescreen atau layar lockscreen. Sejak widget lockscreen sudah tidak berlaku lagi di level API 21, dalam seri ini kita akan membuat widget untuk homescreen saja. Mengapa Harus Membuat Widget Aplikasi? Ada beberapa alasan mengapa Anda harus mempertimbangkan untuk menambahkan widget aplikasi ke proyek Android terbarumu. Akses Mudah terhadap Informasi dan Fitur Penting Widget memungkinkan pengguna melihat informasi terpenting aplikasi Anda, langsung dari homescreen mereka. Misalnya, jika Anda telah mengembangkan aplikasi kalender, Anda mungkin membuat widget yang menampilkan detail tentang janji temu pengguna berikutnya. Ini jauh lebih mudah daripada memaksa pengguna meluncurkan aplikasimu dan berpotensi menavigasi beberapa layar, hanya untuk mengambil informasi yang sama. Jika Anda mengembangkan widget kontrol atau widget hibrida dengan elemen kontrol maka pengguna juga bisa menyelesaikan tugas langsung dari homescreen mereka. Melanjutkan contoh kalender kami, widget Anda memungkinkan pengguna membuat, mengedit dan membatalkan janji temu, berpotensi bahkan tanpa harus meluncurkan aplikasimu. Ini berpotensi menghapus beberapa langkah navigasi dari beberapa tugas terpenting aplikasimu, yang hanya dapat memberi dampak positif pada pengalaman pengguna! Akses Langsung ke Semua Layar Paling Penting dari Aplikasimu Mengetuk widget biasanya membawa pengguna ke tingkat atas aplikasi terkait, mirip dengan shortcut aplikasi. Namun, tidak seperti shortcut aplikasi, widget dapat menautkan ke area tertentu dalam aplikasi yang terkait. Misalnya, mengetuk pemberitahuan email Baru yang diterima oleh widget mungkin meluncurkan aplikasi dengan pesan baru yang telah dipilih, sambil mengetuk Create new email mungkin membawa mereka langsung ke Aktivitas ComposeEmail aplikasi Anda. Dengan menyematkan beberapa tautan dalam tata letak widget Anda, Anda dapat memberikan akses mudah satu ketukan ke semua Aktivitas terpenting dari aplikasi Anda. Buat Basis Pengguna yang Loyal dan Terlibat Sebagai keseluruhan ledakan Pokemon Go dan penurunan selanjutnya terbukti, mendapatkan satu ton orang untuk mendownload aplikasi Anda tidak secara otomatis menjamin basis pengguna loyal yang masih akan menggunakan aplikasi Anda hari, minggu, atau bahkan berbulan-bulan. Pengguna seluler adalah kelompok yang cukup mudah berubah, dan dengan memori yang tersedia di smartphone atau tablet Android khas Anda setiap saat, mudah kehilangan jejak aplikasi yang telah Anda pasang pada perangkat Anda. Kemungkinannya adalah, jika Anda mengangkat smartphone Android atau tablet Anda sekarang dan menggesek app drawer, Anda akan menemukan setidaknya satu aplikasi yang benar-benar Anda lupakan. Dengan membuat widget yang menampilkan semua informasi dan fitur yang paling berharga dari aplikasi Anda, Anda memastikan bahwa setiap kali pengguna melirik homescreen mereka, mereka hanya diingatkan tidak hanya bahwa aplikasi Anda ada, namun juga memiliki konten yang bagus. Menambahkan Widget Aplikasi ke Proyek Anda Bahkan widget yang paling dasar membutuhkan banyak kelas dan sumber daya, namun saat Anda membuat widget menggunakan alat bawaan Android Studio, semua file ini dibuat untuk Anda. Karena tidak ada gunanya membuat pengembangan Android lebih sulit dari yang seharusnya, kami akan menggunakan tool ini untuk mulai memulai membangun widget kami. Widget aplikasi harus selalu dikaitkan dengan aplikasi yang mendasarinya, jadi buatlah proyek Android baru dengan pengaturan pilihan Anda. Setelah Android Studio membangun proyek Anda, pilih File> New > Widget > AppWidget dari toolbar Android Studio. Ini meluncurkan menu Configure Component dimana Anda dapat menentukan beberapa pengaturan awal widget Anda. Sebagian besar pilihan ini cukup jelas, namun ada beberapa hal yang patut ditelusuri secara lebih rinci. Resizable API 12+ Jika widget resizable, maka pengguna bisa menambah atau mengurangi jumlah 'cells' yang ditempatinya di homescreen mereka, dengan lama menekan widget dan kemudian menyeret pegangan biru yang muncul di seputar garis besarnya. Bila memungkinkan, Anda harus memberi widget kemampuan untuk mengubah ukuran secara horizontal dan vertikal, karena ini akan membantu widget Anda menyesuaikan diri dengan berbagai konfigurasi layar dan pengaturan homescreen. Jika pengguna memiliki homescreen yang berantakan dengan serius, mungkin widget Anda mungkin tidak muat di homescreen tersebut, kecuali widget Anda dapat disesuaikan. Jika Anda ingin membuat widget yang tidak dapat resizeable, buka menu dropdown Resizable dan pilih Only horizontal, Only vertikal, atau Not resizable. Lebar Minimum dan Tinggi Lebar minimum dan tinggi menentukan jumlah cell yang biasanya akan menempati widget Anda saat ditempatkan di homescreen. Untuk widget resizable, ini adalah yang terkecil pengguna dapat ukurkan widget Anda, sehingga Anda dapat menggunakan nilai-nilai ini untuk mencegah pengguna dari mengecilkan widget Anda ke titik di mana ia menjadi tidak dapat digunakan. Jika widget Anda tidak resizable, maka nilai minimum dan tinggi minimum adalah lebar permanen dan tinggi widget Anda. Untuk meningkatkan kesempatan memasang widget dengan nyaman di berbagai homescreen, disarankan agar Anda tidak menggunakan apapun yang lebih besar dari 4 kali 4 untuk nilai lebar dan tinggi minimum. Sementara lebar dan tinggi yang tepat dari 'cells' homescreen bervariasi antar perangkat, Anda bisa mendapatkan perkiraan kasar berapa banyak DPIs dots per inch widget Anda akan menempati dengan menggunakan rumus berikut 1 70 × number of cells -30 Misalnya, jika widget Anda adalah 2 x 3 cell 1 70 x 2 - 30 = 110 2 70 x 3 - 30 = 180 Widget ini akan menempati sekitar 110 x 180 DPIs pada homescreen pengguna. Jika nilai ini tidak sesuai dengan dimensi cell perangkat tertentu, maka Android akan secara otomatis memutar widget Anda ke ukuran cell terdekat. Tinjau semua opsi di menu ini dan buat perubahan yang diinginkan saya tetap berpegang pada default dan kemudian klik Finish. Android Studio sekarang akan menghasilkan semua file dan sumber daya yang dibutuhkan untuk mengirimkan widget aplikasi dasar. Widget ini tidak terlalu menarik ini pada dasarnya hanyalah blok biru dengan kata Contoh tertulis di atasnya namun widget fungsional yang dapat Anda uji pada perangkat Anda. Untuk menguji widget Install proyek Anda di perangkat fisik Android atau AVD Android Virtual Device. Luncurkan Android's Widget Picker dengan menekan sembarang ruang kosong di homescreen, lalu ketuk kata Widget yang muncul di bagian bawah layar. Gesek melalui Penjelajah Widget sampai Anda melihat widget Contoh biru. Tekan ke bawah widget ini untuk memasukkannya ke homescreen Anda. Masukkan mode resize dengan menekan widget sampai set pegangan biru muncul, lalu seret pegangan ini untuk menambah atau mengurangi jumlah cell yang dimiliki widget ini. Menjelajahi File Widget Aplikasi Widget ini mungkin tidak terlalu banyak, tapi mencakup semua kelas dan sumber daya yang akan kita kerjakan sepanjang sisa seri ini, jadi mari kita lihat file-file ini dan peran yang mereka mainkan dalam memberikan widget aplikasi. Penyedia widget adalah kelas kenyamanan yang berisi metode yang digunakan untuk interface pemrograman dengan widget melalui broadcast event. Di bawah tenda, widget pada dasarnya hanya BroadcastReceiver yang dapat merespons berbagai tindakan, seperti pengguna yang memasang contoh widget baru di homescreen mereka. Yang paling menonjol, penyedia widget aplikasi adalah tempat Anda akan menentukan metode siklus hidup widget Anda, yang bisa dipanggil untuk setiap contoh widget atau hanya untuk contoh tertentu. Meskipun kita cenderung menganggap widget sebagai entitas tunggal yang ditempatkan pengguna di homescreen mereka sekali, tidak ada yang mencegahnya menciptakan beberapa contoh widget yang sama. Mungkin widget Anda dapat disesuaikan, sampai pada titik di mana berbagai contoh dapat memiliki fungsi yang berbeda secara signifikan, atau mungkin pengguna hanya menyukai widget Anda sehingga mereka ingin memasangnya di seluruh homescreen mereka! Mari kita lihat berbagai metode siklus hidup yang dapat Anda terapkan di kelas penyedia widget Event onReceive Android memanggil method onReceive pada BroadcastReceiver yang terdaftar setiap kali event yang ditentukan terjadi. Anda biasanya tidak perlu menerapkan method ini secara manual, karena kelas AppWidgetProvider secara otomatis menyaring semua siaran widget dan operasi delegasi ke metode yang sesuai. Event onEnabled Method lifecycle onEnabled disebut sebagai respons terhadap ACTION_APPWIDGET_ENABLED, yang disiarkan saat pengguna menambahkan contoh pertama widget Anda ke layar awal mereka. Jika pengguna membuat dua contoh widget Anda, maka onEnabled dipanggil untuk instance pertama, namun tidak untuk yang kedua. Metode siklus hidup ini adalah tempat Anda melakukan setup yang hanya perlu dilakukan sekali untuk semua contoh widget, seperti membuat database atau menyiapkan layanan. Perhatikan bahwa jika pengguna menghapus semua contoh widget Anda dari perangkat mereka dan kemudian membuat instance baru, maka ini digolongkan sebagai instance pertama, dan akibatnya method onEnabled akan dipanggil sekali lagi. Event onAppWidgetOptionsChanged Metode siklus hidup ini disebut sebagai tanggapan terhadap ACTION_APPWIDGET_OPTIONS_CHANGED, yang disiarkan saat contoh widget dibuat dan setiap kali widget diubah ukurannya. Anda dapat menggunakan metode ini untuk mengungkapkan atau menyembunyikan konten berdasarkan ukuran pengguna widget Anda, meskipun callback ini hanya didukung di Android dan yang lebih tinggi. Event onUpdate Metode siklus hidup onUpdate disebut setiap waktu Interval update telah berlalu. Pengguna melakukan tindakan yang memicu metode onUpdate. Pengguna menempatkan contoh widget baru di homescreen mereka kecuali widget Anda berisi Aktivitas konfigurasi, yang akan kita bahas di bagian dua. Metode siklus hidup onUpdate juga disebut sebagai respons terhadap ACTION_APPWIDGET_RESTORED, yang disiarkan setiap kali sebuah widget dipulihkan dari cadangan. Untuk sebagian besar proyek, metode onUpdate akan berisi sebagian besar kode penyedia widget, terutama karena ini juga tempat Anda mendaftarkan penangan event widget Anda. Event onDeleted Method onDeleted dipanggil setiap kali sebuah instance dari widget Anda dihapus dari App Widget Host, yang memicu siaran ACTION_APPWIDGET_DELETED sistem. Event onDisabled Metode ini disebut sebagai respons terhadap siaran ACTION_APPWIDGET_DISABLED, yang dikirim saat contoh terakhir widget Anda dihapus dari Host Widget Aplikasi. Misalnya, jika pengguna membuat tiga contoh widget Anda, metode onDisabled hanya akan dipanggil saat pengguna menghapus contoh ketiga dan terakhir dari homescreen mereka. Metode lifecycle onDisabled adalah di mana Anda harus membersihkan sumber daya yang Anda buat di onEnabled, jadi jika Anda membuat database di onEnabled, maka Anda akan menghapusnya di onDisabled. Event onRestored Metode onRestored dipanggil untuk menanggapi ACTION_APPWIDGET_RESTORED, yang disiarkan setiap kali sebuah instance dari widget aplikasi dipulihkan dari cadangan. Jika Anda ingin mempertahankan data yang persisten, Anda harus mengganti metode ini dan memetakan AppWidgetIds sebelumnya ke nilai yang baru, misalnya 1 public void onRestoredContext context, int[] oldWidgetIds, 2 int[] newWidgetIds { 3 } 4 } Jika Anda membuka file yang dibuat oleh Android Studio secara otomatis, Anda akan melihat bahwa aplikasi tersebut sudah berisi implementasi beberapa metode siklus hidup widget ini 1 import 2 import 3 import 4 import 5 6 //All widgets extend the AppWidgetProvider class// 7 8 public class NewAppWidget extends AppWidgetProvider { 9 10 static void updateAppWidgetContext context, AppWidgetManager appWidgetManager, 11 int appWidgetId { 12 13 CharSequence widgetText = 14 15 //Load the layout resource file into a RemoteViews object// 16 17 RemoteViews views = new RemoteViews 18 widgetText; 19 20 //Tell the AppWidgetManager about the updated RemoteViews object// 21 22 views; 23 } 24 25 //Define the onUpdate lifecycle method// 26 27 Override 28 public void onUpdateContext context, AppWidgetManager appWidgetManager, int[] appWidgetIds { 29 30 //appWidgetIds is an array of IDs that identifies every instance of your widget, so this 31 //particular onUpdate method will update all instances of our application widget// 32 33 for int appWidgetId appWidgetIds { 34 updateAppWidgetcontext, appWidgetManager, appWidgetId; 35 } 36 } 37 38 Override 39 40 //Define the onEnabled lifecycle method// 41 42 public void onEnabledContext context { 43 44 //To do// 45 } 46 47 Override 48 49 //Define the onDisabled method// 50 51 public void onDisabledContext context { 52 53 //To do// 54 55 } 56 } File Layout Widget File res/layout/ mendefinisikan layout widget kita, yang saat ini hanya latar belakang biru dengan kata Example yang tertulis di dalamnya. Perbedaan utama antara membuat tata letak untuk Aktivitas dan membuat tata letak untuk widget adalah tata letak widget harus didasarkan pada RemoteViews, karena ini memungkinkan Android menampilkan tata letak dalam proses di luar aplikasi Anda yaitu di homescreen pengguna. RemoteViews tidak mendukung setiap jenis layout atau View, jadi saat membangun layout widget, Anda terbatas pada tipe berikut AnalogClock Button Chromometer FrameLayout GridLayout ImageButton ImageView LinearLayout ProgressBar RelativeLayout TextView ViewStub Jika Anda membuat widget koleksi, Anda juga dapat menggunakan jenis berikut saat aplikasi Anda terpasang pada Android dan yang lebih tinggi AdapterViewFlipper GridView ListView StackView ViewFlipper Subclass dan keturunan dari Views dan kelas di atas tidak didukung. Klik dan Gesek Untuk memastikan pengguna tidak sengaja berinteraksi dengan widget saat mereka menavigasi di sekitar layar awal mereka, widget hanya akan merespons event OnClick. Pengecualiannya adalah saat pengguna menghapus widget dengan menyeretnya ke dalam tindakan Uninstall homescreen mereka, karena dalam situasi ini widget Anda akan merespons isyarat gesek vertikal. Namun, karena interaksi ini dikelola oleh sistem Android, Anda tidak perlu khawatir menerapkan dukungan tangkapan vertikal di aplikasi Anda. File Info Widget File res/xml/ juga dikenal sebagai file AppWidgetProviderInfo mendefinisikan sejumlah properti widget, termasuk banyak pengaturan yang Anda pilih di menu Configure Component Android Studio, seperti dimensi minimum widget Anda dan apakah itu dapat ditempatkan di layar lockscreen. File konfigurasi juga menentukan seberapa sering widget Anda meminta informasi baru dari layanan update App Widget. Memutuskan frekuensi ini mengharuskan Anda untuk mencapai keseimbangan yang rumit interval pembaruan yang lebih lama akan membantu menghemat baterai perangkat, namun menempatkan jarak Anda terlalu jauh dan widget Anda mungkin menampilkan informasi yang kedaluwarsa. Anda juga harus sadar bahwa sistem akan membangunkan perangkat tidur agar bisa mendapatkan informasi baru, jadi walaupun memperbarui widget Anda setiap setengah jam sekali mungkin tidak terdengar berlebihan, ini bisa mengakibatkan widget Anda membangunkan perangkat setiap 30 menit sekali, yaitu akan mempengaruhi konsumsi baterai Jika Anda membuka file proyek Anda, Anda akan melihat bahwa itu sudah mendefinisikan sejumlah properti widget, termasuk interval update. 1 2 Jika Anda memberi pilihan pada pengguna untuk memasang widget di layar lockscreen, ingatlah bahwa isi widget akan terlihat oleh siapa saja yang melirik layar lockscreen. Jika tata letak 'default' Anda berisi informasi pribadi atau berpotensi sensitif, maka Anda harus menyediakan tata letak alternatif agar widget Anda dapat digunakan saat ditempatkan di layar lockscreen. File res/values/ Widget tidak terlihat terbaik saat mereka saling menekan, atau saat mereka berada di tepi homescreen. Setiap kali widget Anda ditampilkan di Android atau lebih tinggi, sistem operasi Android secara otomatis memasukkan beberapa padding antara frame widget dan kotak pembatas. Jika aplikasi Anda bergetar pada perangkat yang menjalankan apa saja lebih awal dari Android widget Anda harus memasok padding ini sendiri. Saat Anda membuat widget menggunakan menu File > New > Widget > AppWidget, Android Studio menghasilkan dua file yang menjamin widget Anda selalu memiliki padding yang benar, terlepas dari versi Android yang terpasang di dalamnya. Anda akan menemukan kedua file ini di folder res proyek Anda res/values/ File ini mendefinisikan 8dpi padding yang perlu diberikan widget Anda kapan pun terpasang di level API 13 atau yang lebih baru. 1 8dp res/values-v14/ Karena Android dan yang lebih tinggi secara otomatis menerapkan padding ke setiap widget, padding yang disediakan widget Anda akan menjadi tambahan padding default ini. Untuk memastikan widget Anda sejajar dengan ikon aplikasi atau widget lain yang telah ditempatkan pengguna di layar awal mereka, file ini menentukan bahwa widget Anda seharusnya tidak memberikan margin tambahan untuk Android dan yang lebih tinggi 1 0dp Margin default ini membantu menyeimbangkan layar homescreen secara visual, jadi Anda harus menghindari modifikasi - Anda sama sekali tidak ingin widget Anda menjadi yang aneh. Tata letak widget Anda sudah mengacu pada nilai dimensi ini androidpadding="dimen/widget_margin" jadi hati-hati jangan sampai mengubah garis ini saat mengerjakan tata letak widget Anda. Meskipun file ini adalah cara termudah untuk memastikan widget Anda selalu memiliki padding yang benar, jika teknik ini tidak sesuai untuk proyek khusus Anda, maka salah satu alternatifnya adalah membuat beberapa latar belakang sembilan patch dengan margin yang berbeda untuk tingkat API 14 dan lebih tinggi, dan level API 13 dan yang lebih rendah. Anda dapat membuat sembilan patch menggunakan tool 9-patch Android Studio's Draw, atau dengan program edting grafis khusus seperti Adobe Photoshop. Proyek Manifest Dalam file proyek Anda, Anda perlu mendaftarkan widget Anda sebagai BroadcastReceiver dan menentukan penyedia widget dan file AppWidgetProviderInfo yang widget ini harus digunakan. Jika Anda membuka manifest, Anda akan melihat bahwa Android Studio telah menambahkan semua informasi ini untuk Anda. 1 //The widget’s AppWidgetProvider; in this instance that’s 2 3 4 5 6 //An intent filter for the action// 7 8 9 10 11 17 18 19 Widget Picker Resource File res/drawable/ adalah sumber drawable yang mewakili widget Anda di Penjelajah Widget. Untuk mendorong pengguna memilih widget Anda dari semua opsi yang tersedia, drawable yang diinginkan ini harus menampilkan widget Anda, dikonfigurasikan dengan benar pada layar utama dan menampilkan banyak konten yang bermanfaat. Saat membuat widget menggunakan menu File > New > Widget > AppWidget, Android Studio akan menghasilkan pratinjau drawable yang dapat dicadangkan secara otomatis Pada bagian kedua, saya akan menunjukkan kepada Anda bagaimana dengan cepat dan mudah mengganti stok drawable ini, dengan menggunakan tool bawaan Android Studio untuk menghasilkan gambar pratinjau Anda sendiri. Membangun Layout Anda Sekarang kita memiliki gambaran bagaimana file-file ini berkumpul untuk membuat widget aplikasi, mari kita memperluas fondasi ini dan membuat widget yang tidak lebih dari sekedar menampilkan kata Example pada latar belakang biru! Kami akan menambahkan fungsi berikut ke widget kami TextView yang menampilkan label ID Widget Aplikasi. TextView yang mengambil dan menampilkan ID untuk contoh widget tertentu ini. TextView yang merespons event onClick dengan meluncurkan browser default pengguna dan memuat URL. Sementara kita bisa menarik tiga TextViews dari palet Android Studio dan menjatuhkannya ke kanvas, jika widget Anda terlihat bagus maka pengguna akan cenderung menempatkannya di homescreen mereka, jadi mari kita membuat beberapa sumber yang akan memberi widget ekstra visual menarik. Buat Latar Belakang Widget Saya akan membuat persegi panjang dengan sudut membulat, latar belakang gradien, dan border, yang akan saya gunakan sebagai latar belakang widget saya Klik kontrol folder proyek drawable Anda dan pilih New > Drawable resource file. Beri nama file ini widget_background dan klik OK. Masukkan kode berikut 1 2 3 androidshape="rectangle"> 4 5 8 9 13 14 19 2. Buat Latar Belakang TextView Selanjutnya, buat bentuk untuk digunakan sebagai latar belakang TextViews kami Klik kontrol folder proyek drawable Anda dan pilih New > Drawable resource file. Nama file ini tvbackground lalu klik OK. Masukkan kode berikut 1 2 3 androidshape="rectangle" > 4 5 8 9 10 11 16 3. Buat Beberapa Styles Saya juga akan menggunakan styles berikut widget_text. Efek bold yang akan saya terapkan pada teks widget. widget_views. Berbagai margin dan padding yang akan saya terapkan pada TextViews saya. Buka file proyek Anda dan tambahkan yang berikut ini 1 2 8dp 3 12dp 4 12dp 5 12dp 6 bold 7 8 9 10 bold 11 4. Bangun Layout Anda! Sekarang semua sumber daya kita ada, kita bisa membuat layout widget kita. Buka file dan tambahkan yang berikut ini 1 7 8 14 15 21 22 28 29 30 37 Akhirnya, buka file dan tentukan sumber string yang kami rujuk dalam tata letak kami 1 2 Widget 3 App Widget ID\u0020 4 Tap to launch URL 5 Tab Desain Android Studio membantu Anda bekerja lebih efisien, dengan melihat pratinjau bagaimana tata letak Anda akan ditampilkan di berbagai perangkat. Beralih ke tab Desain jauh lebih mudah daripada menjalankan proyek Anda di perangkat Android setiap saat Anda membuat perubahan pada tata letak Anda. Frustratingly, Android Studio tidak menyediakan skin widget khusus, jadi secara default layout widget Anda diberikan seperti Activity biasa, yang tidak memberikan wawasan terbaik tentang bagaimana widget Anda akan terlihat di homescreen pengguna. Salah satu solusi potensial adalah membuat tata letak Anda menggunakan skin Android Wear Square, yang sebanding dengan ukuran dan bentuk widget aplikasi Android Pastikan tab Device Android Studio dipilih. Buka Device dropdown. Pilih 280 x 280, hdpi Square dari menu dropdown. Buat Widget Fungsionalitas Sekarang widget kita terlihat bagiannya, saatnya untuk memberikan beberapa fungsi Retrieve and display data. contoh widget diberikan sebuah ID saat ditambahkan ke Host Widget Aplikasi. ID ini tetap ada di seluruh siklus hidup widget dan akan benar-benar unik untuk contoh widget itu, bahkan jika pengguna menambahkan beberapa contoh widget yang sama ke homescreen mereka. Add an action. Kami akan membuat OnClickListener yang meluncurkan browser default pengguna dan memuat URL. Buka file penyedia widget dan hapus baris yang mengambil sumber string appwidget_text 1 static void updateAppWidgetContext context, AppWidgetManager appWidgetManager, 2 int appWidgetId { 3 4 //Delete the following line// 5 6 CharSequence widgetText = 7 RemoteViews views = new RemoteViews 8 widgetText; 9 10 views; 11 12 } Di blok updateAppWidget, sekarang kami perlu memperbarui placeholder dengan ID unik dari widget ini 1 RemoteViews views = new RemoteViews 2 Kita juga perlu membuat objek Intent yang berisi URL yang harus dimuat setiap kali pengguna berinteraksi dengan TextView ini. 1 Intent intent = new Intent 2 PendingIntent pendingIntent = 0, intent, 0; 3 4 //Attach an OnClickListener to our “launch_url” button, using setOnClickPendingIntent// 5 6 pendingIntent; Inilah file penyedia widget lengkap 1 import 2 import 3 import 4 import 5 import 6 import 7 import 8 9 public class NewAppWidget extends AppWidgetProvider { 10 11 static void updateAppWidgetContext context, 12 13 AppWidgetManager appWidgetManager, 14 15 int appWidgetId { 16 17 //Instantiate the RemoteViews object// 18 19 RemoteViews views = new RemoteViews 20 21 //Update your app’s text, using the setTextViewText method of the RemoteViews class// 22 23 24 25 //Register the OnClickListener// 26 27 Intent intent = new Intent 28 PendingIntent pendingIntent = 0, intent, 0; 29 pendingIntent; 30 views; 31 32 } 33 34 Override 35 public void onUpdateContext context, AppWidgetManager appWidgetManager, int[] appWidgetIds { 36 37 //Update all instances of this widget// 38 39 for int appWidgetId appWidgetIds { 40 updateAppWidgetcontext, appWidgetManager, appWidgetId; 41 } 42 } 43 } Menguji Widget Sudah waktunya memasang widget ini untuk di uji! Pasang proyek yang telah diperbarui di perangkat Android Anda. Untuk memastikan Anda melihat versi terbaru widget ini, hapus contoh widget yang ada dari homescreen Anda. Tekan sembarang bagian kosong dari homescreen, lalu pilih widget Anda dari Widget Picker. Reposisi dan ubah ukuran widget sesuai keinginan. Periksa apakah widget merespons peristiwa masukan pengguna, dengan memilih Ketuk untuk meluncurkan URL TextView. Widget aplikasi harus merespons dengan meluncurkan browser default Anda dan memuat URL. Jika Anda telah mengikuti tutorial ini, maka pada titik ini Anda memiliki widget yang berfungsi penuh yang menunjukkan banyak konsep inti widget aplikasi Android. Anda juga bisa mendownload proyek selesai dari repo GitHub kami. Kesimpulan Di postingan ini kami memeriksa semua file yang dibutuhkan untuk mengirimkan widget aplikasi Android, sebelum membangun widget yang mengambil dan menampilkan beberapa data unik dan merespons peristiwa masukan pengguna. Saat ini, ada satu fungsi utama yang masih hilang dari widget kami tidak pernah menampilkan informasi baru! Di postingan berikutnya, widget ini kita beri kemampuan untuk mengambil dan menampilkan data baru secara otomatis, berdasarkan jadwal yang telah ditetapkan, dan langsung merespon event input pengguna. Sementara itu, lihat beberapa postingan keren kami lainnya tentang pengembangan aplikasi Android di sini, di Envato Tuts+!

cara membuat widget bergerak