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 结束日期* @ ...
最新文章
- Linux下各类TCP网络服务器的实现源代码
- 某大厂程序员求助:认识一个不错的小姐姐,却得知对方竟有四个兄弟姐妹!想放弃,对方却穷追不舍,怎么办?...
- 写markdown用于Github上readme.md文件
- 利用JS提交表单的几种方法和验证
- 一条 SQL 语句在 MySQL 中如何被执行的?
- 2017腾讯编程题----游戏人物标记
- 谷歌浏览器有哪些好看的主题_Kibou 简洁的Typecho主题
- hosts多个ip对应一个主机名_Ubuntu16.04修改主机名和查看主机名的方法
- STM32F103C8T6引脚功能分布
- LoginActivity实现
- jdk的官方下载地址
- Android 编程经典200例 (pdf)资源
- usb转4路rs485、4路rs232原理图
- UE 材质编辑器快捷键
- ps把图片无损放大的方法
- 谷歌统计代码使用方式
- 路由器的级联(LAN-WAN)
- 子网掩码是什么,IP段的24是什么写法(CIDR写法,斜杠记法斜线记法)
- 全球对冲基金及其投资策略解析
- 王者荣耀微信查看服务器地址大全,王者荣耀游戏账号在哪里查看微信