
1、使用Color类的常量,如:
int color = ColorBLUE; // 创建一个蓝色 是使用Android提供的颜色 int color = ColorRED; int color = ColorWHITE; 2、通过ARGB构建,如:
int color = Colorargb ( 127, 255, 0, 255 ); // 半透明的紫色
其中第一个参数表示透明,0表示完全透明,255(ff)表示完全不透明;后三位分别代表RGB的值了。 3、使用XML资源文件来定义颜色
该方法扩展性好,便于修改和共享,如在values目录下创建一个colorxml: <xml version=” 10” encoding=”utf -8”> <resources>
<color name=”mycolor”> #7fff00ff</color> </resources>
定义了一个名为mycolor的颜色,在别的地方就可以通过引用mycolor来获取该颜色值,如textView定义中:
android:textColor= "@drawable/mycolor"
Java代码中可以使用ResourceManager类中的getColor来获取该颜色: int color = getResources()getColor(Rcolormycolor);
这与第二种方法得到的值是一样的,getResources()方法返回当前活动Activity的ResourceManager类实例。
说明:XML定义方法接受6位和8位两种表示法,而且开头必须是#,8位定义时前两位表示透明。 4、直接定义色值,如: int color = 0xff00ff00;
这种方法必须使用0x开头,而不是用我们常用的#。与方法3不一样,值也必须用8位表示 ,不接受6位的颜色表示。分组一下0x|ff|ff00ff,0x是代表颜色整数的标记,ff是表示透明度,ff00ff表示RGB颜色值。
=======================
补充一点Android布局中背景的设置(编辑LinearLayout):
可以使用纯色:android:background="@drawable/mycolor" (XML资源文件中定义的颜色)
也可使用:android:background="@drawable/bg" (需要将一个名为bgjpg或png的拷贝到res/drawable-hdpi目录下)。
使用 Mat 中对矩阵元素的地址定位的知识 (参考博文:OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解)
Code 1 :
int main()
{
//新建一个uchar类型的单通道矩阵(grayscale image 灰度图)
Mat m(400, 400, CV_8U, Scalar(0));
for (int col = 0; col < 400; col++)
{
for (int row = 195; row < 205; row++)
{
cout << (int)((mdata + mstep[0] row + mstep[1] col)) << " ==> ";
//获取第[row,col]个像素点的地址并用 符号解析
(mdata + mstep[0] row + mstep[1] col) = 255;
cout << (int)((mdata + mstep[0] row + mstep[1] col)) << endl;
}
}
imshow("canvas", m);
cvWaitKey();
return 0;
}
Output 1 :
0 ==> 255
0 ==> 255
0 ==> 255
0 ==> 255
0 ==> 255
0 ==> 255
Code1只是演示了单通道的情况,对于多通道的例子,请看 Code2 然后再看 Code3。
Fn 2 :
使用 Mat::at 函数
原型 template<typename _Tp> inline _Tp& Mat::at(…) //其中参数有多个,也就是说 at 函数有多个重载
返回值为 Mat 类型, Mat 有个索引的重载,也就是 [] 符号的重载,用这个重载可以定位多通道数据,具体示例可以看下面代码
下面的代码把红色通道值大于128的颜色的置为白色,左边为原图,右边为处理过后的图。
对于颜色,不同的位置有不同的属性,这里简单介绍下
1colorPrimary 应用的主要色调,actionBar默认使用该颜色,Toolbar导航栏的底色
2colorPrimaryDark 应用的主要暗色调,statusBarColor默认使用该颜色
3statusBarColor 状态栏颜色,默认使用colorPrimaryDark
4windowBackground 窗口背景颜色
5navigationBarColor 底部栏颜色
6colorForeground 应用的前景色,ListView的分割线,switch滑动区默认使用该颜色
7colorBackground 应用的背景色,popMenu的背景默认使用该颜色
8colorAccent CheckBox,RadioButton,SwitchCompat等一般控件的选中效果默认采用该颜色
9colorControlNormal CheckBox,RadioButton,SwitchCompat等默认状态的颜色。
10colorControlHighlight 控件按压时的色调
11colorControlActivated 控件选中时的颜色,默认使用colorAccent
12colorButtonNormal 默认按钮的背景颜色
13editTextColor 默认EditView输入框字体的颜色。
14textColor Button,textView的文字颜色
15textColorPrimary DisableOnly RadioButton checkbox等控件的文字
16textColorPrimary 应用的主要文字颜色,actionBar的标题文字默认使用该颜色
17colorSwitchThumbNormal: switch thumbs 默认状态的颜色 (switch off)
可在stringxml中修改值,这个简单;在代码中修改也可以,不过之前stringxml要为某id事先预留变量,代码能够修改它~例如说,<string name="a">今年是%1$d年</string>JAVA代码中可用String a = getResources()getString(Rstringa); String b = Stringformat(a, 2011);将%1$d替换为2011简单解释%1$d,1表示a中有一个值需要修改;d表示是整型。若是要有两个就要再写多个%2$d若是字符串,就写成%1$s我想你是想知道第二种方法吧?!呵呵~
以上就是关于Android 中代码定义颜色的几种方式全部的内容,包括:Android 中代码定义颜色的几种方式、android opencv 如何获得特定像素点的颜色、安卓 各属性指定颜色的位置(colorAccent,colorPrimary,colorPrimaryDark)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)