Pet*_*vdL 171 android background view colors set
我正在尝试设置视图的背景颜色(在本例中为Button).
我用这个代码:
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
Run Code Online (Sandbox Code Playgroud)
它会导致Button从屏幕上消失.我做错了什么,以及在任何视图上更改背景颜色的正确方法是什么?
谢谢.
小智 277
你使你的按钮透明.第一个字节是alpha.
尝试 v.setBackgroundColor(0xFF00FF00);
Edd*_*ieB 142
当你调用setBackgoundColor时,它会覆盖/删除任何现有的背景资源,包括任何边框,角落,填充等.你要做的是改变现有背景资源的颜色......
View v;
v.getBackground().setColorFilter(Color.parseColor("#00ff00"), PorterDuff.Mode.DARKEN);
Run Code Online (Sandbox Code Playgroud)
尝试使用PorterDuff.Mode.*来获得不同的效果.
Jor*_*sys 117
有几种选择......
将背景设置为绿色:
v.setBackgroundColor(0x00FF00);
Run Code Online (Sandbox Code Playgroud)
使用Alpha将背景设置为绿色:
v.setBackgroundColor(0xFF00FF00);
Run Code Online (Sandbox Code Playgroud)
使用Color.GREEN常量将背景设置为绿色:
v.setBackgroundColor(Color.GREEN);
Run Code Online (Sandbox Code Playgroud)
在Colors.xml中将背景设置为绿色定义
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="myGreen">#00FF00</color>
<color name="myGreenWithAlpha">#FF00FF00</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
和使用:
v.setBackgroundResource(R.color.myGreen);
Run Code Online (Sandbox Code Playgroud)
和:
v.setBackgroundResource(R.color.myGreenWithAlpha);
Run Code Online (Sandbox Code Playgroud)
或者更长的啰嗦:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreen));
Run Code Online (Sandbox Code Playgroud)
和:
v.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.myGreenWithAlpha));
Run Code Online (Sandbox Code Playgroud)
小智 35
您可以使用以下命令将hex-color设置为任何资源:
View.setBackgroundColor(Color.parseColor("#e7eecc"));
Run Code Online (Sandbox Code Playgroud)
小智 16
// set the background to green
v.setBackgroundColor(0x0000FF00 );
v.invalidate();
Run Code Online (Sandbox Code Playgroud)
代码不会将按钮设置为绿色.相反,它使按钮完全不可见.
说明:颜色的十六进制值错误.Alpha值为零时,颜色将不可见.
正确的十六进制值0xFF00FF00用于完全不透明绿色.00和FF之间的任何Alpha值都会导致透明度.
Com*_*are 12
什么是更改任何视图背景颜色的正确方法?
在任何 View?你有什么是正确的,虽然你应该放弃invalidate()电话.
但是,有些人Views已经有了背景.Button例如,A 已经有了一个背景:按钮本身的面部.此背景是一个StateListDrawable,您可以android-2.1/data/res/drawable/btn_default.xml在Android SDK安装中找到它.反过来,这是指一堆九个补丁位图图像,有多种密度可供选择.您需要克隆并修改所有这些以实现您的绿色目标.
简而言之,您将更好地找到另一个UI模式,而不是尝试更改a的背景Button.
小智 11
要设置要在屏幕上看到的第一种颜色,您还可以通过将此属性添加到相关视图,在相关的layout.xml(更好的设计)中执行此操作:
android:background="#FF00FF00"
Run Code Online (Sandbox Code Playgroud)
Lon*_*bow 11
尝试添加:
setBackgroundColor(Color.parseColor("#FF0000"));
Run Code Online (Sandbox Code Playgroud)
小智 7
这对我有用
v.getBackground().setTint(Color.parseColor("#212121"));
Run Code Online (Sandbox Code Playgroud)
这样只会改变背景的颜色,而不会改变背景本身。例如,如果您的背景带有圆角,这非常有用。
小智 6
我在API min 16,目标23使用
Button WeekDoneButton = (Button) viewWeeklyTimetable.findViewById(R.id.week_done_button);
WeekDoneButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
Run Code Online (Sandbox Code Playgroud)
mButton.setBackgroundColor(getResources().getColor(R.color.myColor));
Run Code Online (Sandbox Code Playgroud)
你可以简单地使用:
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
414267 次 |
| 最近记录: |