Saya menerima nilai warna hex dari server (dalam bentuk ini #xxxxxx
, misalnya #000000
untuk hitam)
Bagaimana cara mengubahnya menjadi nilai integer?
Saya mencoba melakukan Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))
untuk mendapatkan hasil yang lebih kuat 0x000000
, tetapi ini tidak ditafsirkan sebagai di int
sini, ada saran lain?
Saya menerima kesalahan: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
Saya menggunakan Android SDK untuk setBackgroundColor(int color)
fungsinya, yang membutuhkan - seperti yang bisa Anda duga - nilai warna integer.
Ini adalah LAWAN dari pertanyaan ini: Bagaimana cara mengubah integer warna menjadi String hex di Android?
valueOf
, di mana Anda menentukan input string (tanpa #, tentu saja) dan radix, yang menentukan basis.Integer.valueOf(passedColor.substring(1, passedColor.length()), 16)
Ini dapat dilakukan dengan basis bilangan bulat apa pun! download.oracle.com/javase/6/docs/api/java/lang/… , int)Jawaban:
Jawaban sebenarnya adalah dengan menggunakan:
Color.parseColor(myPassedColor)
di Android,myPassedColor
menjadihex
nilai seperti#000
atau#000000
atau#00000000
.Namun, fungsi ini tidak mendukung nilai hex singkatan seperti
#000
.sumber
#000
. Lihat dokumentasi#ccc
. Apakah ada cara lain?Jawabannya simpel banget guys, di android jika ingin merubah warna hex menjadi int, gunakan saja kelas Color android , contoh gambar dibawah ini
ini untuk warna abu-abu terang
Color.parseColor("#a8a8a8");
Itu saja dan Anda akan mendapatkan hasil Anda.
sumber
Integer.parseInt(myString.replaceFirst("#", ""), 16)
sumber
parseInt
akan gagal jika menemukannya pada input.parseColor()
. Anda sangat benar.Saya memiliki masalah yang sama dengan yang saya temukan dalam bentuk warna
#AAAAAA
dan saya ingin mengubahnya menjadi bentuk yang dapat digunakan oleh android. Saya menemukan bahwa Anda hanya dapat menggunakan0xFFAAAAAA
sehingga android dapat secara otomatis mengetahui warnanya. Perhatikan yang pertamaFF
adalahalpha
nilai jitu . Semoga membantusumber
Jawaban sebenarnya adalah yang paling sederhana dan termudah ini ....
String white = "#ffffff"; int whiteInt = Color.parseColor(white);
sumber
Saya menghadapi masalah yang sama. Dengan cara ini saya bisa menyelesaikannya. Seperti yang dikatakan CQM, menggunakan Color.parseColor () adalah solusi yang baik untuk masalah ini.
Ini kode yang saya gunakan:
this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));
Dalam hal ini target saya adalah mengubah warna teks Tombol (Button_C) ketika saya mengubah pemilihan warna dari Preferensi saya (color_prefs).
sumber
Berdasarkan CQM 's jawaban dan ovokerie-ogbeta ' s jawaban untuk pertanyaan lain saya sudah datang dengan solusi ini:
if (colorAsString.length() == 4) { // #XXX colorAsString = colorAsString.replaceAll("#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])", "#$1$1$2$2$3$3"); } int color = Color.parseColor(colorAsString);
sumber
Dapatkan Kode Warna Preferensi Bersama dalam String lalu Konversikan ke integer dan tambahkan warna latar belakang tata letak:
sharedPreferences = getSharedPreferences(mypref, Context.MODE_PRIVATE); String sw=sharedPreferences.getString(name, ""); relativeLayout.setBackgroundColor(Color.parseColor(sw));
sumber
Coba ini, buat drawable di resource Anda ...
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="@color/white"/> <size android:height="20dp" android:width="20dp"/> </shape>
lalu gunakan ...
dengan warna ... "#FFFFFF"
jika warnanya transparan gunakan ... setAlpha
mView1.setAlpha(x);
dengan x float 0-1 Ej (0.9f)Semoga berhasil
sumber