Joh*_*ann 292 android hex colors
我想使用六角形字符串中的颜色,例如"#FFFF0000"
更改布局的背景颜色.
Color.HSVToColor
看起来像赢家,但它需要float[]
一个参数.
我是否接近解决方案?
jet*_*hro 571
尝试Color
类方法:
public static int parseColor (String colorString)
Run Code Online (Sandbox Code Playgroud)
来自Android文档:
支持的格式为:#RRGGBB #AARRGGBB'red','blue','green','black','white','grey','cyan','magenta','yellow','lightgray','darkgray "
inv*_*sbo 239
尝试:
myLayout.setBackgroundColor(Color.parseColor("#636161"));
Run Code Online (Sandbox Code Playgroud)
Sur*_*gch 34
这个问题出现在与十六进制颜色相关的一些搜索中,所以我将在这里添加一个摘要.
十六进制颜色采用形式RRGGBB
或AARRGGBB
(alpha,红色,绿色,蓝色).根据我的经验,当int
直接使用时,您需要使用完整的AARRGGBB
表格.如果您只有RRGGBB
表单,则只需在其前面加上,FF
以使alpha(透明度)完全不透明.以下是如何在代码中设置它.0x
在开头使用意味着它是十六进制而不是基数10.
int myColor = 0xFF3F51B5;
myView.setBackgroundColor(myColor);
Run Code Online (Sandbox Code Playgroud)
正如其他人所指出的那样,你可以使用Color.parseString
像这样
int myColor = Color.parseColor("#3F51B5");
myView.setBackgroundColor(myColor);
Run Code Online (Sandbox Code Playgroud)
请注意,String必须以a开头#
.这两个RRGGBB
和AARRGGBB
格式都支持.
实际上你应该尽可能从XML中获取颜色.这是推荐的选项,因为它可以更轻松地对您的应用进行颜色更改.如果你在整个代码中设置了很多十六进制颜色,那么稍后尝试更改它们会非常痛苦.
Android材质设计具有已配置的十六进制值的颜色.
这些主题颜色在整个应用中使用,如下所示:
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>
Run Code Online (Sandbox Code Playgroud)
如果您需要其他颜色,最好遵循的方法是在xml中分两步定义颜色.首先命名十六进制值颜色,然后命名应该获得特定颜色的应用程序组件.这样可以在以后轻松调整颜色.同样,这是在colors.xml中.
<color name="orange">#fff3632b</color>
<color name="my_view_background_color">@color/orange</color>
Run Code Online (Sandbox Code Playgroud)
然后,当您要在代码中设置颜色时,请执行以下操作:
int myColor = ContextCompat.getColor(context, R.color.my_view_background_color);
myView.setBackgroundColor(myColor);
Run Code Online (Sandbox Code Playgroud)
Color类带有许多预定义的颜色常量.你可以像这样使用它.
int myColor = Color.BLUE;
myView.setBackgroundColor(myColor);
Run Code Online (Sandbox Code Playgroud)
其他颜色
Color.BLACK
Color.BLUE
Color.CYAN
Color.DKGRAY
Color.GRAY
Color.GREEN
Color.LTGRAY
Color.MAGENTA
Color.RED
Color.TRANSPARENT
Color.WHITE
Color.YELLOW
Bry*_*eld 22
将该字符串转换为int
可在setBackgroundColor
和中使用的颜色setTextColor
String string = "#FFFF0000";
int color = Integer.parseInt(string.replaceFirst("^#",""), 16);
Run Code Online (Sandbox Code Playgroud)
16表示它是十六进制而不是常规0-9.结果应该是相同的
int color = 0xFFFF0000;
Run Code Online (Sandbox Code Playgroud)
Pat*_*cia 16
它的
int color = Color.parseColor("colorstring");
Run Code Online (Sandbox Code Playgroud)
Min*_*ain 15
试试这个:
vi.setBackgroundColor(Color.parseColor("#FFFF0000"));
Run Code Online (Sandbox Code Playgroud)
Opy*_*Opy 11
我使用它,它对我来说非常适合设置我想要的任何颜色.
public static final int MY_COLOR = Color.rgb(255, 102, 153);
Run Code Online (Sandbox Code Playgroud)
使用0-255为每个红色,绿色和蓝色设置颜色,然后在任何您想要使用颜色的地方放置MY_COLOR而不是Color.BLUE或Color.RED或Color类提供的任何其他静态颜色.
只需在Google上搜索颜色图表,就可以使用0-255找到包含正确RGB代码的图表.
小智 10
尝试这个
int colorInt = Color.parseColor("#FF00FFF0");
bg.setBackgroundColor(colorInt);
Run Code Online (Sandbox Code Playgroud)
其中 bg 是要为其设置背景颜色的视图或布局。
在Xamarin中使用此
Control.SetBackgroundColor(global::Android.Graphics.Color.ParseColor("#F5F1F1"));
Run Code Online (Sandbox Code Playgroud)
保存在res/values/colors.xml的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="opaque_red">#f00</color>
<color name="translucent_red">#80ff0000</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
此应用程序代码检索颜色资源:
Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
Run Code Online (Sandbox Code Playgroud)
此布局XML将颜色应用于属性:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/translucent_red"
android:text="Hello"/>
Run Code Online (Sandbox Code Playgroud)