我正在尝试设置视图的背景颜色(在本例中为按钮)。
我使用此代码:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
它会使Button从屏幕上消失。我做错了什么,以及在任何视图上更改背景颜色的正确方法是什么?
感谢。
答案 0 :(得分:271)
您使按钮透明。第一个字节是alpha。
尝试v.setBackgroundColor(0xFF00FF00);
答案 1 :(得分:139)
当你调用setBackgoundColor时,它会覆盖/删除任何现有的背景资源,包括任何边框,角落,填充等。 你想要做的是改变现有背景资源的颜色......
View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
尝试使用PorterDuff.Mode。*获取不同的效果。
答案 2 :(得分:114)
有几种选择......
将背景设置为绿色:
v.setBackgroundColor(0x00FF00);
使用Alpha将背景设置为绿色:
v.setBackgroundColor(0xFF00FF00);
使用Color.GREEN常量将背景设置为绿色:
v.setBackgroundColor(Color.GREEN);
中将背景设置为绿色
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myGreen">#00FF00</color>
<color name="myGreenWithAlpha">#FF00FF00</color>
</resources>
并使用:
v.setBackgroundResource(R.color.myGreen);
和
v.setBackgroundResource(R.color.myGreenWithAlpha);
或更长的啰嗦:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
和
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
答案 3 :(得分:34)
您可以使用以下颜色将六角颜色设置为任何资源:
View.setBackgroundColor(Color.parseColor("#e7eecc"));
答案 4 :(得分:16)
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
代码未将按钮设置为绿色。相反,它使按钮完全不可见。
说明:颜色的十六进制值错误。如果Alpha值为零,则颜色将不可见。
对于完全不透明度绿色,正确的十六进制值为0xFF00FF00
。 00和FF之间的任何Alpha值都会导致透明度。
答案 5 :(得分:12)
什么是正确的改变方式 任何视图的背景颜色?
在任何 View
上?你有什么是正确的,但你应放弃invalidate()
电话。
但是,有些Views
已有背景。例如,Button
已经具有背景:按钮本身的面部。此背景为StateListDrawable
,您可以在Android SDK安装中的android-2.1/data/res/drawable/btn_default.xml
中找到该背景。反过来,这是指一堆九个补丁位图图像,有多种密度可供选择。您需要克隆并修改所有这些以实现绿色目标。
简而言之,您可以更好地找到其他UI模式,而不是尝试更改Button
的背景。
答案 6 :(得分:11)
要设置屏幕上可见的第一种颜色,您还可以通过将此属性添加到相关视图中,在相关的layout.xml(更好的设计)中执行此操作:
android:background="#FF00FF00"
答案 7 :(得分:11)
尝试添加:
setBackgroundColor(Color.parseColor("#FF0000"));
答案 8 :(得分:6)
我在API min 16使用,目标23
()
答案 9 :(得分:5)
您可以简单地使用:
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
答案 10 :(得分:4)
这对我有用
v.getBackground().setTint(Color.parseColor("#212121"));
这种方式只会改变背景的颜色而不改变背景本身。例如,如果您有带圆角的背景,这会很有用。
答案 11 :(得分:4)
此question讨论了如何更改视图的背景颜色。在其中一个答案中,该人员解释了如何在运行时更改背景颜色。显然,您将研究如何修改屏幕上的其他对象,但这应该给您一个良好的开端,至少允许您在按钮单击时修改视图的背景颜色。
答案 12 :(得分:3)
使用Android 6说明使用ContextCompact
view.setBackgroundColor( ContextCompat.getColor(this, R.color.your_color));
答案 13 :(得分:2)
您可以简单地使用:
var cts = new CancellationTokenSource(); // Work for 5 sec
try
{
RepeadtReadingXml(2000, 1000, cts.Token).Wait();
}
catch (AggregateException ae)
{
ae.Handle(e => e is TaskCanceledException);
}
答案 14 :(得分:1)
在 kotlin 中,您可以这样操作:
val backgroundColor = R.color.whatever_color_you_like
view.setBackgroundColor(getColorCompat(backgroundColor))
getColorCompat()
是扩展功能的地方:
/**
* Extension method to provide simpler access to {@link ContextCompat#getColor(int)}.
*/
fun Context.getColorCompat(color: Int) = ContextCompat.getColor(this, color)
答案 15 :(得分:0)
view.setBackgroundColor(R.color.primaryColor);
为先前的颜色值添加颜色,所以我有不同的颜色。
对我有用的是:
view.setBackgroundResource(R.color.primaryColor);
答案 16 :(得分:0)
假设我们在values=>colors.xml
中具有原色:
<resources>
<color name="primary">#FDD835</color>
</resources>
因此,如果我们要在setBackgroundColor(@ColorInt int Color)
中使用自定义颜色,则只需要带有构造函数/方法的注释 @SuppressLint("ResourceAsColor")
,该注释将用作:
@SuppressLint("ResourceAsColor")
public _LinearLayout(Context context) {
super(context);
// Formatting our layout : )
super.setBackgroundColor(R.color.primary);
....
}
答案 17 :(得分:0)
您必须在参数中传递@RestController
@RequestMapping(path = "api")
public class CompanyController {
@Autowired
private GraphQLSomething graphQLSomething;
@GetMapping("company/{id}")
public ResponseEntity<?> societe(@PathVariable @NotNull Integer id) {
GraphQLSomethingResult result = GraphQLSomething.query("company(id: $id) { id name andsoone }", "{ \"id\": 123456 }").execute(); // not really sure of the GraphQL syntax here, but it'll need some tests...
return result.getDataOrElse();
}
}
。
第一个示例:
int
第二个例子:
view.setBackgroundColor(-500136)
答案 18 :(得分:0)
这应该可以正常工作:v.setBackgroundColor(0xFF00FF00);
答案 19 :(得分:0)
我尝试了以上所有方法。但是我还没有达到我所需要的。这是我的尝试。 如果您使用十六进制代码作为颜色,并且想要将颜色设置为图像的背景,那么这就是kotlin代码。
val bitmap = Bitmap.createBitmap(30, 30, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val colorCode = "#ffffff"
canvas.drawColor(Color.parseColor(colorCode))
mImageViewLogo.setImageBitmap(bitmap)