博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ColorUtil【Color工具类(color整型、rgb数组、16进制互相转换)】
阅读量:6588 次
发布时间:2019-06-24

本文共 4439 字,大约阅读时间需要 14 分钟。

版权声明:本文为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
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下载地址

你可能感兴趣的文章
Play! Framework 系列(一):初探 play 框架
查看>>
Shiro【授权、整合Spirng、Shiro过滤器】
查看>>
MarkDown语法
查看>>
这么说吧,NIO很简单,其实就是个牛逼IO
查看>>
七、【应用的主要框架】
查看>>
使用Python快速获取公众号文章定制电子书(二)
查看>>
weak和assign的区别
查看>>
iOS下JS与OC互相调用(七)--Cordova 基础
查看>>
两列自适应布局方案整理
查看>>
测试本地node包
查看>>
Three.js 关于立方体贴图产生边缘锯齿问题
查看>>
自己动手,在macOS High Sierra中编译一个可debug的JDK
查看>>
用掘金-Markdown 编辑器写文章
查看>>
一文搞懂前端对象的深拷贝与浅拷贝
查看>>
Like Sunday, Like Rain - JavaScript运算符优先级
查看>>
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
查看>>
最大熵模型
查看>>
【开发问题记录①】关于滑动CollectionView时ContentSize变化的问题
查看>>
纯前端控件集 WijmoJS 2018V2发布,提供可视化设计器,在React、Vue和Angular中的更易用...
查看>>
JavaScript 中call apply 那点简单事
查看>>