java 获取两颜色值的中间值
有时候做项目的时候,需要动态的计算两颜色值之间的中间值,然后做出一定的效果,那么该怎么求呢?
下面说说做法:
简单而言,就是需要对两颜色之间的求和再取平均值,但是直接使用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())); }
如此一来,就能实现一个比较困难的需求,用曲线救国的方式实现我们的功能要求了。
感谢你的浏览。
java 获取两颜色值的中间值相关推荐
- 在Java中获取两个数的中间值(超大数值)
//获取两个数的中间值(超大数值) public class MidValue {public static void main(String[] args) {method1();//两数相加后除二 ...
- 获取两个数百分比的值
1 /** 2 * 获取两个数百分比的值 3 * 4 * @param num1 5 * @param num2 6 * @param retain 保留小数位数 7 * @return 8 */ 9 ...
- java获取两个字符串日期之间间隔的天数
java获取两个字符串日期之间间隔的天数 import java.text.ParseException; import java.text.SimpleDateFormat; import java ...
- java 获取两条经纬度线段的交点坐标工具类
java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...
- java获取两个日期之间的所有日期(包括开始日期和结束日期)
java获取两个日期之间的所有日期集合 解决方法: import java.text.SimpleDateFormat; import java.util.ArrayList; import java ...
- Java比较两个实体属性值是否相同,将不同的属性输出
/*** 比较两个实体属性值,返回一个map以有差异的属性名为key,value为一个Map分别存oldObject,newObject此属性名的值* @param oldObject 进行属性比较的 ...
- java 获取两个时间差_java如何获取两个日期的时间差
本文实例为大家分享了java如何获取两个日期的时间差,供大家参考,具体内容如下 rainBeginTime是从本地数据库获取的时间,格式为"yyyy-MM-ddTHH:mm:ss" ...
- java获取两个时间的间隔天数_java获取两日期的间隔天数
这是我程序中用到的方法,传入的日期格式,可根据本身的须要做相应的改变.java /** * 读取两个日期之间的天数 * @param begin yyyy-mm-dd * @param end yyy ...
- Java 获取两个日期之间的日期
1.前期需求,两个日期,startDate和endDate,然后获取到两个日期之间的日期 /*** 获取两个日期之间的日期* @param start 开始日期* @param end 结束日期* @ ...
最新文章
- 检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
- IIS启动时出现0x8ffe2740的错误
- 如何将网页保存为图片_如何用浏览器插件一键批量下载网页图片?
- 状态很差时,就不要再继续做了。因为是徒劳,再就是过段时间或第二天再看,会豁然开朗,原来存在的疑难问题都迎刃而解。平时没事的时候要不断地给自己充电,让自己了解多方面知识。...
- [Swift]LeetCode326. 3的幂 | Power of Three
- python函数abs()
- c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
- SQL Server 2012大数据导入Oracle的解决方案
- 在字符串中查找id值MySQL
- 个人经验分享:AD绘制PCB(入门教程)
- Unity塔防游戏学习(六)
- 太赞了!图解SQL基础知识,菜鸟也能看懂的SQL文章!
- 想要职场安全感?那就请你别停止成长
- Axure 点图片外区域即隐藏_多年后终迎换代,新奔腾B70——颜值即是正义!_搜狐汽车...
- 焦作市宇华学校2021高考成绩查询,河南2021高考最高分多少分,河南历年高考状元资料...
- Code for fun (1)
- 《红面书生》的算法博客
- Laravel Sail 使用 PhpStorm 与 Xdebug 进行调试
- sqlserver 字段类型详解
- 3-6岁经典绘本分级大推荐,给孩子先收藏起来
热门文章
- 建站技术之csrf django版
- linux系列(十):shell循环结构、for、while
- 学习《JavaScript高级程序设计》----day06
- Leetcode:NO.15 三数之和 夹逼
- Linux杂谈之python命令
- 每个人都能制作的简易版QQ音乐(HTML+CSS+JQuery)
- 你知道什么是 短路与 和 短路非吗 ???
- Andriod-Dagger2
- 关于com.lowagie.text包的报错问题
- idea 启动报错: Failed to create JVM.JVM.Path XXXXXXX\jbr\ 我的解决办法