Yanıtlar:
ColorSınıf yöntemini deneyin :
public static int parseColor (String colorString)
Gönderen Android belgeler :
Desteklenen formatlar şunlardır: #RRGGBB #AARRGGBB 'kırmızı', 'mavi', 'yeşil', 'siyah', 'beyaz', 'gri', 'mavi', 'macenta', 'sarı', 'açık gri', 'koyu gri '
#000değerleri nasıl ayrıştırılacağını biliyor mu?
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) }yanılıyorsam lütfen beni düzeltin
if(colorString.length() == 4 && colorString[0] == '#')
Deneyin:
myLayout.setBackgroundColor(Color.parseColor("#636161"));
Bu soru altıgen renk ile ilgili bir dizi arama için geliyor, bu yüzden buraya bir özet ekleyeceğim.
Hex renkler şeklinde RRGGBBveya AARRGGBB(alfa, yeşil, mavi, kırmızı). Deneyimlerime göre, intdoğrudan kullanırken, tam AARRGGBBformu kullanmanız gerekir . Yalnızca RRGGBBforma sahipseniz FF, alfa (saydamlık) tamamen opak hale getirmek için önekleyin. Kodda nasıl ayarlayacağınız aşağıda açıklanmıştır. Kullanılması 0xbaşlayan vasıtası azından onaltılık ve 10 baz değildir.
int myColor = 0xFF3F51B5;
myView.setBackgroundColor(myColor);
Diğerleri de belirtildiği gibi, kullanabilirsiniz Color.parseStringşöyle
int myColor = Color.parseColor("#3F51B5");
myView.setBackgroundColor(myColor);
Dize'nin bir ile başlaması gerektiğini unutmayın #. Hem RRGGBBve AARRGGBBbiçimleri desteklenir.
Renklerinizi mümkün olduğunca XML'den almanız gerekir. Bu, uygulamanızda renk değişiklikleri yapmayı çok kolaylaştırdığı için önerilen seçenektir. Kodunuz boyunca çok sayıda altıgen renk ayarlarsanız, bunları daha sonra değiştirmeye çalışmak büyük bir acıdır.
Android malzeme tasarımı, önceden yapılandırılmış onaltılık değerlerle renk damağına sahiptir.
Bu tema renkleri uygulamanızda kullanılır ve şöyle görünür:
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary">#3F51B5</color>
<color name="primary_dark">#303F9F</color>
<color name="primary_light">#C5CAE9</color>
<color name="accent">#FF4081</color>
<color name="primary_text">#212121</color>
<color name="secondary_text">#757575</color>
<color name="icons">#FFFFFF</color>
<color name="divider">#BDBDBD</color>
</resources>
Ek renklere ihtiyacınız varsa, uygulamanız için iyi bir uygulama, renginizi xml'de iki adımda tanımlamaktır. Önce onaltılık değer rengini adlandırın ve ardından uygulamanızın belirli bir renk alması gereken bir bileşenini adlandırın. Bu, renkleri daha sonra ayarlamayı kolaylaştırır. Yine, bu colors.xml'de .
<color name="orange">#fff3632b</color>
<color name="my_view_background_color">@color/orange</color>
Ardından, kodu kodda ayarlamak istediğinizde aşağıdakileri yapın:
int myColor = ContextCompat.getColor(context, R.color.my_view_background_color);
myView.setBackgroundColor(myColor);
Color sınıfı, önceden tanımlanmış bir dizi renk sabitiyle gelir. Bu şekilde kullanabilirsiniz.
int myColor = Color.BLUE;
myView.setBackgroundColor(myColor);
Diğer renkler
Color.BLACKColor.BLUEColor.CYANColor.DKGRAYColor.GRAYColor.GREENColor.LTGRAYColor.MAGENTAColor.REDColor.TRANSPARENTColor.WHITEColor.YELLOWBir o dizeyi dönüştürmek intkullanılabilir renk setBackgroundColorvesetTextColor
String string = "#FFFF0000";
int color = Integer.parseInt(string.replaceFirst("^#",""), 16);
16, onaltılı olduğu anlamına gelir ve normal 0-9 değil. Sonuç şununla aynı olmalıdır
int color = 0xFFFF0000;
#80000000int durumda olacağını bu durumda olduğunu düşünüyorum int color = 0x80000000;. Bu işe yaramazsa , benden daha fazla kişinin fark edeceği şekilde daha fazla ayrıntı içeren yeni bir soru gönderin . Unutmayın, #80000000yarı saydam bir siyah renk.
Onun
int color = Color.parseColor("colorstring");
Bunu kullanıyorum ve istediğim rengi ayarlamak için benim için harika çalışıyor.
public static final int MY_COLOR = Color.rgb(255, 102, 153);
Her kırmızı, yeşil ve mavi için 0-255 kullanarak renkleri ayarlayın, sonra o rengin istediğiniz yere Color.BLUE veya Color.RED veya Color sınıfının sunduğu diğer statik renklerin yerine MY_COLOR koyun.
Sadece renk tablosu için bir Google araması yapın ve 0-255 kullanarak doğru RGB kodlarına sahip bir grafik bulabilirsiniz.
In Xamarin Bunu kullanın
Control.SetBackgroundColor(global::Android.Graphics.Color.ParseColor("#F5F1F1"));
Res / value / colors.xml dosyasına kaydedilen XML dosyası:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
</resources>
Bu uygulama kodu renk kaynağını alır:
Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
Bu mizanpaj XML rengi bir özniteliğe uygular:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>
Bunun yerine 0xFFF000 kullanmayı deneyin ve bunu Color.HSVToColor yöntemine iletin.