java 获取两颜色值的中间值
来源:互联网 发布:linux ping命令 编辑:程序博客网 时间:2024/06/05 11:45
有时候做项目的时候,需要动态的计算两颜色值之间的中间值,然后做出一定的效果,那么该怎么求呢?
下面说说做法:
简单而言,就是需要对两颜色之间的求和再取平均值,但是直接使用color.parseInt再求和除2是不对的,因为直接求和会导致颜色不对,具体原因出自相加求和颜色退位。
那么,该如何算呢,贴下代码:
public static String getMiddleColor(String color1, String color2) { if (color1.contains("#") && color2.contains("#") && color1.length() == color2.length() && color2.length() == 7) { String tempColor1 = color1.replace("#", ""); String tempColor2 = color2.replace("#", ""); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("#"); for (int i = 0; i < tempColor1.length(); i++) { String tempResult = (changeHex2Int(String.valueOf(tempColor1.charAt(i))) + changeHex2Int(String.valueOf(tempColor2.charAt(i)))) / 2 + ""; stringBuffer.append(changeInt2Hex(tempResult)); } return stringBuffer.toString(); } return "";}简单的说就是根据6位的颜色直接逐个逐个的求和再除二,那么这个颜色值就是对的了。
private static int changeHex2Int(String temp) { BigInteger srch = new BigInteger(temp, 16); return Integer.valueOf(srch.toString());}private static String changeInt2Hex(String temp) { BigInteger srch = new BigInteger(temp, 10); return Integer.toHexString(Integer.parseInt(srch.toString()));}如此一来,就能实现一个比较困难的需求,用曲线救国的方式实现我们的功能要求了。
感谢你的浏览。
阅读全文
0 0
- java 获取两颜色值的中间值
- 获取option中间的值
- 在两种不同的颜色中间,按阶数进行过渡
- 不使用中间变量交换两数的值
- 获取某个颜色的相邻颜色值
- Java 计算月份跨度并获取中间值
- java中获取md5值的两种方法
- Java Map获取值的两种方法
- 交换两个变量的值----两种方法(1)通过中间临时变量(2)不通过中间临时变量
- iOS 获取两段文字中间内容
- iOS颜色摄合器,获取图片某点的颜色值
- java(引入一个中间变量,不引入中间变量)交换两个变量的值
- 获取系统颜色值
- 获取颜色值
- Canvas 获取颜色值
- C或C++中不用中间变量交换两变量的值
- 如何获取选中的颜色值
- js 获取随机颜色值的函数
- 经典算法分析与设计——最短加法链
- Android中通过Socket直接与RILD进行通信
- java项目集合
- 什么是uuid以及uuid在java中的使用
- 输入子系统之events消息数据传递
- java 获取两颜色值的中间值
- 01背包的动态规划解法(史无前例的详细)
- HDU 1874 迪杰斯特拉
- Volatile和Synchronized关键字
- IEEE 802.3以太网帧封装
- TCP协议的3次握手和4次挥手
- JavaScript 读写Cookie扩展
- Get Curve Length
- matlab中的max和min