[Android_Develop]使用RGB值在代码中实时设置图片背景颜色
2018-01-22 23:59
585 查看
使用RGB值在代码中实时设置图片背景颜色
ImageView.setImageResource(int color),参数是int型,而我们的RGB是三个0-255的数值,所以我们的目标是将三个RGB转成一个int id。首先我们要将RGB三色转成16进制,并拼成“#ffffff”的形式,即方法toHexColor(r,g,b);
但是拼凑过程中如果数值小于10,结果会出现“#0ffff”,即不是6个字符,会crash,所以要检查,即checkColorValue(int value)方法;
最后调用Color.parseColor(color)方法,即可生产int color ID。
/** * 设置自定义按键背景颜色,有则设置图片背景色,无则设为默认色彩 */ private void setSelfBg(int r,int g,int b,ImageView imageView){ if(r==NO_COLOR||g==NO_COLOR||b==NO_COLOR){ imageView.setImageResource(R.drawable.atmo_self); }else { String color = toHexColor(r,g,b); imageView.setImageResource(R.drawable.atmo_tran); imageView.setBackgroundColor(Color.parseColor(color)); } }
/** *将10进制RGB设为16进制“#000000”String */ private String toHexColor(int red, int green, int blue){ if(red>255) red = 255; if(green>255) green = 255; if(blue>255) blue = 255; if(red<0) red = 0; if(green<0) green = 0; if(blue<0) blue = 0; String r = checkColorValue(red); String g = checkColorValue(green); String b = checkColorValue(blue); String str = "#"+r+g+b; if(str.length()<7) str = "#000000"; return str; }
/** *检查转换后的16进制是否为两位数 */ private String checkColorValue(int value){ String str = ""; if(value<16){ str ="0" + Integer.toHexString(value); return str; } return Integer.toHexString(value); }
相关文章推荐
- android在代码中四种设置控件背景颜色的方法(包括RGB)
- Android知识点记录: 使用代码设置 android 上listView的条目的点击背景颜色
- Android 使用代码设置selector 的图片或文字颜色
- 【android】 使用一个shape.xml文件,使用代码设置不同圆角背景颜色
- android在代码中四种设置控件背景颜色的方法(包括RGB)
- android在代码中四种设置控件背景颜色的方法(包括RGB)
- Android代码中设置图片,文本自定义颜色,Linearlayout等控件设置背景
- android在代码中四种设置控件背景颜色的方法(包含RGB)
- 使用js获取图片某一点的rgb值,并设置相适应的背景颜色。http://www.zhangxinxu.com/study/201408/rgbaster-js-example.html
- android:设置背景图片、背景颜色透明
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- android 代码中设置背景颜色
- [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
- Android代码code设置9.png/9-patch 图片背景后,此view中的控件显示不正常
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- Android在监听器中使用代码改变其他控件背景或颜色
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
- android:设置背景图片、背景颜色透明