Saya bingung tentang gaya tombol untuk desain material. Saya ingin mendapatkan tombol penuh warna seperti di tautan terlampir., Seperti tombol "berhenti paksa" dan "hapus" yang terlihat di bagian penggunaan. Apakah ada gaya yang tersedia atau apakah saya perlu mendefinisikannya?
http://www.google.com/design/spec/components/buttons.html#buttons-usage
Saya tidak dapat menemukan gaya tombol default.
Contoh:
<Button style="@style/PrimaryButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate"
android:id="@+id/button3"
android:layout_below="@+id/editText5"
android:layout_alignEnd="@+id/editText5"
android:enabled="true" />
Jika saya mencoba mengubah warna latar tombol dengan menambahkan
android:background="@color/primary"
semua gaya hilang, seperti animasi sentuhan, bayangan, sudut bulat, dll.
Jawaban:
Saya akan menambahkan jawaban saya karena saya tidak menggunakan jawaban lain yang disediakan.
Dengan Perpustakaan Dukungan v7, semua gaya sebenarnya sudah ditentukan dan siap digunakan, untuk tombol standar, semua gaya ini tersedia:
Widget.AppCompat.Button
:Widget.AppCompat.Button.Colored
:Widget.AppCompat.Button.Borderless
Widget.AppCompat.Button.Borderless.Colored
:Untuk menjawab pertanyaan, gaya yang digunakan karenanya
Bagaimana cara mengubah warnanya
Untuk seluruh aplikasi:
Warna semua kontrol UI (tidak hanya tombol, tetapi juga tombol aksi mengambang, kotak centang, dll.) Dikelola oleh atribut
colorAccent
seperti yang dijelaskan di sini . Anda dapat memodifikasi gaya ini dan menerapkan warna Anda sendiri dalam definisi tema Anda:Untuk tombol tertentu:
Jika Anda perlu mengubah gaya tombol tertentu, Anda dapat menentukan gaya baru, mewarisi salah satu gaya induk yang dijelaskan di atas. Dalam contoh di bawah ini saya baru saja mengubah warna latar dan font:
Maka Anda hanya perlu menerapkan gaya baru ini pada tombol dengan:
Untuk mengatur desain tombol default dalam tata letak, tambahkan baris ini ke tema styles.xml:
di mana
@style/btn
tema tombol Anda. Ini menetapkan gaya tombol untuk semua tombol dalam tata letak dengan tema tertentusumber
colorButtonNormal
attr tidak bekerja untuk saya di Android 4.1.2. Sama sekali tidak dapat mengatur warna tombol (android:background
merusak gaya material tombol).style=""
alih-alihAndroid:theme=""
mengubah yang terakhir memperbaiki masalah itu untuk sayaSolusi paling sederhana
Langkah 1: Gunakan perpustakaan dukungan terbaru
Langkah 2: Gunakan AppCompatActivity sebagai kelas Aktivitas induk Anda
Langkah 3: Gunakan namespace aplikasi dalam file XML layout Anda
Langkah 4: Gunakan AppCompatButton, bukan Button
sumber
android.support.v7.widget.AppCompatButton
karena alat bangun secara otomatis menggunakannya saat Anda menentukanButton
textColor
menimpa warna teks untuk keadaan dinonaktifkan .Widget.MaterialComponents.Button.OutlinedButton
, setidaknya.Jika saya mengerti Anda dengan benar, Anda ingin melakukan sesuatu seperti ini:
Dalam hal demikian, itu harus cukup untuk digunakan:
Atau untuk API kurang dari 21:
Selain Menggunakan Tutorial Tema Bahan .
Varian animasi ada di sini .
sumber
Inilah cara saya mendapatkan apa yang saya inginkan.
Pertama, buat tombol
styles.xml
:Riak dan latar belakang untuk tombol, sebagai drawable
primary_round.xml
:Ini menambahkan efek riak yang saya cari.
sumber
Tambahkan ketergantungan ke Anda
build.gradle
:Kemudian tambahkan
MaterialButton
ke tata letak Anda:Anda dapat memeriksa dokumentasi lengkap di sini dan API di sini .
Untuk mengubah warna latar belakang Anda memiliki 2 opsi.
backgroundTint
atribut.Sesuatu seperti:
materialThemeOverlay
atribut baru .Sesuatu seperti:
Opsi # 2 membutuhkan
'com.google.android.material:material:1.1.0'.
Perpustakaan Dukungan LAMA:
Dengan Perpustakaan Dukungan 28.0.0 baru , Perpustakaan Desain sekarang berisi
MaterialButton
.Anda dapat menambahkan tombol ini ke file tata letak kami dengan:
Secara default, kelas ini akan menggunakan warna aksen tema Anda untuk tombol yang mengisi warna latar belakang bersama dengan putih untuk warna teks tombol.
Anda dapat menyesuaikan tombol dengan atribut ini:
app:rippleColor
: Warna yang akan digunakan untuk efek riak tombolapp:backgroundTint
: Digunakan untuk menerapkan warna ke latar belakang tombol. Jika Anda ingin mengubah warna latar tombol, gunakan atribut ini alih-alih latar belakang.app:strokeColor
: Warna yang akan digunakan untuk stroke tombolapp:strokeWidth
: Lebar yang akan digunakan untuk stroke tombolapp:cornerRadius
: Digunakan untuk menentukan jari-jari yang digunakan untuk sudut tombolsumber
Berikut adalah contoh yang akan membantu dalam menerapkan gaya tombol secara konsisten di seluruh aplikasi Anda.
Berikut adalah contoh Tema yang saya gunakan dengan gaya tertentu ..
Ini adalah bagaimana saya mendefinisikan bentuk tombol & efek di dalam folder res / drawable-v21 ...
Sudut 2dp harus tetap konsisten dengan tema Material.
sumber
Di samping
android.support.design.button.MaterialButton
( yang disebutkan oleh Gabriele Mariotti ),Ada juga
Button
widget lain yang disebutcom.google.android.material.button.MaterialButton
yang memiliki gaya berbeda dan memanjang dariAppCompatButton
:Diisi, ditinggikan
Button
(default) :Diisi, tidak terelevasi
Button
:Teks
Button
:Ikon
Button
:Teks
Button
dengan ikon ::Baca: https://material.io/develop/android/components/material-button/
sumber
app:backgroundTint
&app:backgroundTintMode
dari dokumentasi .Saya mencoba banyak jawaban & lib pihak ketiga, tetapi tidak ada yang menjaga perbatasan dan meningkatkan efek pada pre-lollipop sambil memiliki efek riak pada lollipop tanpa kekurangan. Berikut ini adalah solusi terakhir saya yang menggabungkan beberapa jawaban (batas / terangkat tidak diberikan dengan baik pada gif karena kedalaman warna abu-abu):
Lollipop
Pra-lolipop
build.gradle
layout.xml
drawable-v21 / btn_bg.xml
drawable / btn_bg.xml
Aktifitas onCreate
sumber
1) Anda dapat membuat tombol sudut bulat dengan mendefinisikan xml drawable dan Anda dapat menambah atau mengurangi radius untuk menambah atau mengurangi kebulatan sudut tombol. Atur xml ini sebagai latar tombol.
2) Untuk mengubah animasi transisi bayangan dan transisi bayangan antara status tombol, Anda perlu menentukan pemilih dan menerapkannya ke tombol menggunakan properti android: stateListAnimator. Untuk referensi penyesuaian tombol lengkap: http://www.zoftino.com/android-button
sumber
Saya baru saja membuat perpustakaan android, yang memungkinkan Anda dengan mudah memodifikasi warna tombol dan warna riak
https://github.com/xgc1986/RippleButton
Anda tidak perlu membuat gaya untuk setiap tombol yang Anda inginkan dengan warna yang berbeda, memungkinkan Anda untuk menyesuaikan warna secara acak
sumber
rippleColor has already been defined
Anda dapat memberikan penerbangan ke tampilan dengan menambahkan sumbu z ke sana dan dapat memiliki bayangan default untuk itu. fitur ini disediakan dalam pratinjau L dan akan tersedia setelah rilis. Untuk saat ini Anda cukup menambahkan gambar yang memberi tampilan tombol latar belakang ini
sumber