ColorUtil【Color工具类(color整型、rgb数组、16进制互相转换)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处!
前言
主要用于color整型、rgb数组、16进制互相转换(-12590395 <--> #3FE2C5 <--> [63,226,197])
效果图
暂不需要
代码分析
color的int类型值转16进制类型值包括两种方案:
方案一:思路:计算&16777215的值,然后通过字符串获取16进制数值。
/**Color的Int整型转Color的16进制颜色值【方案一】
* colorInt - -12590395
* return Color的16进制颜色值——#3FE2C5
* */
public static String int2Hex(int colorInt){
String hexCode = "";
hexCode = String.format("#%06X", Integer.valueOf(16777215 & colorInt));
return hexCode;
}
方案二:思路:int类型 --> rgb数组 --> 16进制类型值
/**Color的Int整型转Color的16进制颜色值【方案二】
* colorInt - -12590395
* return Color的16进制颜色值——#3FE2C5
* */
public static String int2Hex2(int colorInt){
String hexCode = "";
int[] rgb = int2Rgb(colorInt);
hexCode = rgb2Hex(rgb);
return hexCode;
}
使用步骤
一、项目组织结构图

注意事项:
1、导入类文件后需要change包名以及重新import R文件路径
2、Values目录下的文件(strings.xml、dimens.xml、colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖
二、导入步骤
将ColorUtil文件复制到项目中即可。
package com.why.project.colorutildemo.util; import android.graphics.Color; /**
* Created by HaiyuKing
* Used Color工具类(color整型、rgb数组、16进制互相转换)
*/ public class ColorUtil { /**Color的Int整型转Color的16进制颜色值【方案一】
* colorInt - -12590395
* return Color的16进制颜色值——#3FE2C5
* */
public static String int2Hex(int colorInt){
String hexCode = "";
hexCode = String.format("#%06X", Integer.valueOf(16777215 & colorInt));
return hexCode;
} /**Color的Int整型转Color的16进制颜色值【方案二】
* colorInt - -12590395
* return Color的16进制颜色值——#3FE2C5
* */
public static String int2Hex2(int colorInt){
String hexCode = "";
int[] rgb = int2Rgb(colorInt);
hexCode = rgb2Hex(rgb);
return hexCode;
} /**Color的Int整型转Color的rgb数组
* colorInt - -12590395
* return Color的rgb数组 —— [63,226,197]
* */
public static int[] int2Rgb(int colorInt){
int[] rgb = new int[]{0,0,0}; int red = Color.red(colorInt);
int green = Color.green(colorInt);
int blue = Color.blue(colorInt);
rgb[0] = red;
rgb[1] = green;
rgb[2] = blue; return rgb;
} /**rgb数组转Color的16进制颜色值
* rgb - rgb数组——[63,226,197]
* return Color的16进制颜色值——#3FE2C5
* */
public static String rgb2Hex(int[] rgb){
String hexCode="#";
for(int i=0;i<rgb.length;i++){
int rgbItem = rgb[i];
if(rgbItem < 0){
rgbItem = 0;
}else if(rgbItem > 255){
rgbItem = 255;
}
String[] code = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
int lCode = rgbItem / 16;//先获取商,例如,255 / 16 == 15
int rCode = rgbItem % 16;//再获取余数,例如,255 % 16 == 15
hexCode += code[lCode] + code[rCode];//FF
}
return hexCode;
}
/**Color的16进制颜色值 转 Color的Int整型
* colorHex - Color的16进制颜色值——#3FE2C5
* return colorInt - -12590395
* */
public static int hex2Int(String colorHex){
int colorInt = 0;
colorInt = Color.parseColor(colorHex);
return colorInt;
} /**Color的16进制颜色值 转 rgb数组
* colorHex - Color的16进制颜色值——#3FE2C5
* return Color的rgb数组 —— [63,226,197]
* */
public static int[] hex2Rgb(String colorHex){
int colorInt = hex2Int(colorHex);
return int2Rgb(colorInt);
} /**Color的rgb数组转Color的Int整型
* rgb - Color的rgb数组 —— [63,226,197]
* return colorInt - -12590395
* */
public static int rgb2Int(int[] rgb){
int colorInt = 0;
colorInt = Color.rgb(rgb[0],rgb[1],rgb[2]);
return colorInt;
} }
三、使用方法
package com.why.project.colorutildemo; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log; import com.why.project.colorutildemo.util.ColorUtil; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initData();
}
private void initData() { String colorHex1 = ColorUtil.int2Hex(-12590395);//#3FE2C5
String colorHex2 = ColorUtil.int2Hex2(-12590395);//#3FE2C5
Log.w(TAG,"colorHex1="+colorHex1);
Log.w(TAG,"colorHex2="+colorHex2); int[] colorRgb = ColorUtil.int2Rgb(-12590395);//63,226,197
Log.w(TAG,"colorRgb="+colorRgb[0]+","+colorRgb[1]+","+colorRgb[2]); int colorInt1 = ColorUtil.hex2Int("#3FE2C5");//-12590395
Log.w(TAG,"colorInt1="+colorInt1);
}
}
打印日志如下:

混淆配置
无
参考资料
暂时空缺
项目demo下载地址
https://github.com/haiyuKing/ColorUtilDemo
ColorUtil【Color工具类(color整型、rgb数组、16进制互相转换)】的更多相关文章
- 颜色选择器 rgb 与16进制 颜色转换
1. h5 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- RGB与16进制颜色转换的原理
Integer有进制转换的方法.也可以自己写进制转换的方法.
- RGB与16进制色互转
点击进入新版 <前端在线工具站> CSS, JavaScript 压缩YUI compressor, JSPacker...HTML特殊符号对照表PNG,GIF,JPG... Base ...
- JS-011-颜色进制转换(RGB转16进制;16进制转RGB)
在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#0000 ...
- JS实现rgb与16进制颜色相互转换
1.rgb转16进制 function to16 (a) {//RGB(204,204,024) //十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a- ...
- bgcolor RGB 和16进制之间的转换,16进制转RGB,源码
<p>bgcolor RGB 和16进制之间的转换,16进制转RGB,源码例如:<br /> 输入 201,255,201 转换成 #C9FFC9</p> < ...
- C# RGB与16进制颜色转换方法
http://www.cnblogs.com/goldarch/archive/2010/08/16/1801053.html #region [颜色:16进制转成RGB] /// &l ...
- java-整型数值 用 16进制转换、2进制转换-Integer.toHexString
负数为什么要用补码表示 可以将符号位和其它位统一处理 减法也可按加法来处理 另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃 正数:原码.反码.补码相同. 负数:反码符号位不变 ...
- 16进制色值转换成RGB
#51147f 转换成RGB ,5*16+1 ,1*16+4,7*16+15 #A9A9A9 转换成RGB ,A*16+9 ,A*16+9,A*16+9
随机推荐
- 如何查看selenium的版本号
方法一: 打开cmd,输入python >>> import selenium >>> help(selenium) Help on package seleniu ...
- Linux.安装phantomjs
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...
- bzoj4035 [HAOI2015]数组游戏
这题显然把每个白格子看成一个子游戏 一个白格子$x$的$sg$值是$mex{[0,sg[2x],sg[2x] XOR sg[3x].....]}$ 打表发现一个数的$sg$值只和$n/x$有关,然后分 ...
- BZOJ3252: 攻略 可并堆
网上有很多人说用dfs序+线段树做...其实stl的堆可以...可并堆可以...很多奇奇怪怪的东西都能做... 可并堆比较好想...也比较好写... 分析: 首先,这是一个网络流做不了的题...数据太 ...
- ssh 隧道
SSH 隧道转发实战 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作 ...
- Spring AOP就是这么简单啦
前言 只有光头才能变强 上一篇已经讲解了Spring IOC知识点一网打尽!,这篇主要是讲解Spring的AOP模块~ 之前我已经写过一篇关于AOP的文章了,那篇把比较重要的知识点都讲解过了一篇啦:S ...
- eclipse使用javaFX写一个HelloWorkld
------------------------------------------------ 操作系统:Ubuntu18.04 EclipseVersion: Oxygen.3a Release ...
- Python学习笔记1 -- TypeError: 'str' object is not callable
Traceback (most recent call last): File "myfirstpython.py", line 39, in <module> pri ...
- 从壹开始前后端分离 40 || 完美基于AOP的接口性能分析
旁白音:本文是不定时更新的.net core,当前主线任务的Nuxt+VueAdmin教程的 nuxt.js 之 tibug项目已上线,大家可以玩一玩:http://123.206.33.109:70 ...
- spring boot 2.0 Feign的客户端
1.pom.xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...