Saya ingin menggunakan warna dari string heksa seperti "#FFFF0000"
untuk (katakanlah) mengubah warna latar belakang Layout.
Color.HSVToColor
terlihat seperti pemenang tetapi dibutuhkan float[]
sebagai parameter.
Apakah saya sudah dekat dengan solusi?
Jawaban:
Coba
Color
metode kelas:Dari dokumentasi Android :
sumber
#000
nilai?if(colorString.length() == 4) { colorString = "#" + StringUtils.repeat(colorString.substring(1, 1), 1) + StringUtils.repeat(colorString.substring(2, 2), 1) + StringUtils.repeat(colorString.substring(3, 3), 1) }
if(colorString.length() == 4 && colorString[0] == '#')
Mencoba:
sumber
Pertanyaan ini muncul untuk sejumlah pencarian terkait dengan warna hex jadi saya akan menambahkan ringkasan di sini.
Warna dari int
Warna heks mengambil bentuk
RRGGBB
atauAARRGGBB
(alfa, merah, hijau, biru). Dalam pengalaman saya, saat menggunakan secaraint
langsung, Anda harus menggunakanAARRGGBB
formulir lengkap . Jika Anda hanya memilikiRRGGBB
formulir maka awali saja denganFF
untuk membuat alpha (transparansi) sepenuhnya buram. Inilah cara Anda mengaturnya dalam kode. Menggunakan0x
di awal berarti itu heksadesimal dan bukan basis 10.Warna dari string
Seperti yang telah dicatat orang lain, Anda dapat menggunakannya
Color.parseString
seperti ituPerhatikan bahwa String harus dimulai dengan a
#
. KeduanyaRRGGBB
danAARRGGBB
format didukung.Warna dari XML
Anda harus benar-benar mendapatkan warna dari XML jika memungkinkan. Ini adalah opsi yang disarankan karena membuatnya lebih mudah untuk membuat perubahan warna pada aplikasi Anda. Jika Anda menetapkan banyak warna hex di seluruh kode Anda, maka akan sangat sulit untuk mencoba mengubahnya nanti.
Desain material Android memiliki langit-langit warna dengan nilai hex sudah dikonfigurasi.
Warna-warna tema ini digunakan di seluruh aplikasi Anda dan terlihat seperti ini:
colors.xml
Jika Anda membutuhkan warna tambahan, praktik yang baik untuk diikuti adalah mendefinisikan warna Anda dalam dua langkah dalam xml. Pertama beri nama warna nilai hex dan kemudian beri nama komponen aplikasi Anda yang harus mendapatkan warna tertentu. Ini membuatnya mudah untuk menyesuaikan warna nanti. Sekali lagi, ini ada dalam colors.xml .
Kemudian ketika Anda ingin mengatur warna dalam kode, lakukan hal berikut:
Android warna yang ditentukan sebelumnya
Kelas Warna hadir dengan sejumlah konstanta warna yang telah ditentukan. Anda bisa menggunakannya seperti ini.
Warna lainnya adalah
Color.BLACK
Color.BLUE
Color.CYAN
Color.DKGRAY
Color.GRAY
Color.GREEN
Color.LTGRAY
Color.MAGENTA
Color.RED
Color.TRANSPARENT
Color.WHITE
Color.YELLOW
Catatan
sumber
Ubah string itu menjadi
int
warna yang dapat digunakan dalamsetBackgroundColor
dansetTextColor
16 berarti hexadecimal dan bukan 0-9 reguler Anda. Hasilnya harus sama dengan
sumber
#80000000
dalam hal versi int akanint color = 0x80000000;
. Jika itu tidak berhasil maka posting pertanyaan baru dengan lebih detail sehingga lebih banyak orang daripada saya akan melihatnya. Yang perlu diingat#80000000
adalah warna hitam yang bening.Nya
sumber
Coba ini:
sumber
Saya menggunakan ini dan itu berfungsi baik bagi saya untuk mengatur warna apa pun yang saya inginkan.
Tetapkan warna menggunakan 0-255 untuk setiap merah, hijau dan biru lalu di mana pun Anda menginginkan warna yang digunakan, cukup masukkan MY_COLOR alih-alih Color.BLUE atau Color.RED atau warna statis lainnya yang ditawarkan kelas Warna.
Lakukan pencarian Google untuk bagan warna dan Anda dapat menemukan bagan dengan kode RGB yang benar menggunakan 0-255.
sumber
Di Xamarin Gunakan ini
sumber
File XML disimpan di res / values / colors.xml:
Kode aplikasi ini mengambil sumber daya warna:
Layout XML ini menerapkan warna ke atribut:
sumber
Coba gunakan 0xFFF000 dan berikan itu ke metode Color.HSVToColor.
sumber
Jika Anda menentukan warna dalam XML Anda dan ingin menggunakannya untuk mengubah warna latar belakang atau sesuatu API ini adalah yang Anda cari:
Dalam sampel saya, saya menggunakannya untuk TestView
sumber
Untuk kode Hex yang dipersingkat
sumber