Android Color 颜色过度计算实现方法
来源:互联网 发布:淘宝上的机油能买吗 编辑:程序博客网 时间:2024/06/05 00:32
在项目中经常要做一些动画效果,一般会伴随颜色的变化,为了友好的交互,这个变化过程最好是平滑过度,这里是贴上一种计算两个颜色之间的色差在某个百分比情况的颜色值:
/** * 计算从startColor过度到endColor过程中百分比为franch时的颜色值 * @param startColor 起始颜色 int类型 * @param endColor 结束颜色 int类型 * @param franch franch 百分比0.5 * @return 返回int格式的color */public static int caculateColor(int startColor, int endColor, float franch){String strStartColor = "#" + Integer.toHexString(startColor);String strEndColor = "#" + Integer.toHexString(endColor);return Color.parseColor(caculateColor(strStartColor, strEndColor, franch));}/** * 计算从startColor过度到endColor过程中百分比为franch时的颜色值 * @param startColor 起始颜色 (格式#FFFFFFFF) * @param endColor 结束颜色 (格式#FFFFFFFF) * @param franch 百分比0.5 * @return 返回String格式的color(格式#FFFFFFFF) */public static String caculateColor(String startColor, String endColor, float franch){int startAlpha = Integer.parseInt(startColor.substring(1, 3), 16);int startRed = Integer.parseInt(startColor.substring(3, 5), 16);int startGreen = Integer.parseInt(startColor.substring(5, 7), 16);int startBlue = Integer.parseInt(startColor.substring(7), 16);int endAlpha = Integer.parseInt(endColor.substring(1, 3), 16);int endRed = Integer.parseInt(endColor.substring(3, 5), 16);int endGreen = Integer.parseInt(endColor.substring(5, 7), 16);int endBlue = Integer.parseInt(endColor.substring(7), 16);int currentAlpha = (int) ((endAlpha - startAlpha) * franch + startAlpha);int currentRed = (int) ((endRed - startRed) * franch + startRed);int currentGreen = (int) ((endGreen - startGreen) * franch + startGreen);int currentBlue = (int) ((endBlue - startBlue) * franch + startBlue);return "#" + getHexString(currentAlpha) + getHexString(currentRed)+ getHexString(currentGreen) + getHexString(currentBlue);}/** * 将10进制颜色值转换成16进制。 */ public static String getHexString(int value) { String hexString = Integer.toHexString(value); if (hexString.length() == 1) { hexString = "0" + hexString; } return hexString; }
0 0
- Android Color 颜色过度计算实现方法
- Android之Color 颜色过度计算
- java 十六进制过度颜色值计算
- android 颜色(color)
- Android 颜色Color
- Android 颜色Color
- android color.xml 颜色
- Android 颜色Color
- Android GPU加速实现图像颜色传递(Color transfer)
- Color Slider Control的颜色计算
- android color.xml 颜色大全
- android颜色配置文件color.xml
- Android 颜色Color(转)
- android颜色color.xml设置
- Android Color(颜色)解析
- Android color 平滑过渡计算
- Android Color 定义方法
- Android入门--android.graphics.Color 颜色设置
- ffmpeg主要数据结构及其之间的关系
- C++浅拷贝、深拷贝及引用计数浅析
- MYSQL语法速查之表更改
- 关于数组TOP K算法(快排及最小堆方式C代码)
- (138)子数组之和
- Android Color 颜色过度计算实现方法
- c++学习笔记(四):c++中new delete关键字 VS c语言中malloc free函数
- Android设置透明、半透明等效果
- ios 使用宏创建标准单利
- AlertView的基本用法
- Maven生成javadoc
- KMP算法的C语言实现
- Android 工作问题记录
- js事件(onmouseover和onmouseout)