Saya ingin membuat bantuan overlay seperti yang Anda lihat saat ICS dimuat untuk pertama kalinya atau di aplikasi seperti ES File Explorer atau Apex Launcher (masih ada lagi, tetapi saya tidak dapat memikirkannya sekarang). Apakah ini hanya tata letak relatif dengan satu tampilan berada di atas yang lain? Saya belum dapat menemukan kode contoh untuk melakukan hal seperti itu. Adakah yang tahu bagaimana ini dilakukan atau punya ide?
ViewGroup
untuk lapisan "tanda pelatih" dapat menangani itu, dan ada pustaka (misalnyaShowcaseView
) yang menawarkan implementasi terekam dari pola itu."Tanda pelatih" adalah "Tampilan bantuan" dalam UX talk :-)
coach_mark.xml adalah tata letak tanda pelatih Anda
coach_mark_master_view adalah id dari tampilan paling atas (root) di coach_mark.xml
Menambahkan contoh coach_mark.xml (ke solusi luar biasa yang diberikan oleh Oded Breiner), sehingga mudah bagi ppl untuk menyalin & menempel untuk melihat contoh yang berfungsi dengan cepat.
Contoh coach_mark.xml di sini, ubah -> drawable / coach_marks ke gambar Anda:
coach_mark.xml
Dan secara opsional gunakan tema ini untuk menghapus padding:
sumber
A dialog is a small window that prompts [...]. A dialog does not fill the screen and is normally used for modal events [...].
,. Jika saya menggunakan kode ini, saya mendapatkan tampilan utama saya dikompresi di sebagian kecil layar. Jika saya menetapkanandroid:layout_width="640dp" android:layout_height="480dp"
(yaitu, nilai aktual layar yang saya uji), ini berfungsi dengan benar. (tentu saja ini bukan solusi yang layak)new Dialog(getContext(), R.style.WalkthroughTheme);
Anda dapat melakukannya dengan cukup cepat. Anda menambahkan, misalnya LinearLayout di mana Anda meletakkan gambar dengan alpha yang sesuai dengan informasi bantuan Anda dan apa yang ingin Anda gambar seperti overlay. Dalam xml aktivitas Anda, Anda meletakkan tata letak ini di RelativeLayout setelah tata letak aktivitas Anda dengan Gone visibility. Saat Anda ingin menggambar informasi bantuan, Anda hanya perlu mengatur visibilitas ini menjadi terlihat.
Saya harap, saya jelas, jika Anda memiliki pertanyaan, saya bersedia menjawabnya.
sumber
Lihat jawaban saya yang lain bagaimana secara terprogram menampilkan tata letak overlay di atas aktivitas saat ini. Layout.xml aktivitas tidak perlu mengetahui apa pun tentang skin overlay. Anda dapat meletakkan overlay semi-transparan, menutupi hanya sebagian layar, satu atau lebih textview dan tombol di atasnya ... Bagaimana cara melapisi tombol secara terprogram?
Tujuan saya adalah bahwa aktivitas utama tidak mengetahui adanya skin overlay, overlay datang dan pergi, banyak overlay berbeda, masih dapat menggunakan file teks overlay1.xml sebagai template, dan konten harus diperbarui secara terprogram. Saya melakukan cukup banyak apa yang CommonsWare katakan kepada kami bahwa posting saya menunjukkan kode program yang sebenarnya untuk memulai.
disclaimer: OPs "Terima kasih atas masukan Anda. Ini adalah bagaimana saya membayangkan itu dilakukan. Saya harus memberikan kredit untuk jawaban di bawah ini" komentar bukan berarti jawaban saya tetapi jawaban CommonsWare. Stackoverflow telah mengubah pemesanan pos.
sumber