获取过度颜色百分比及设置背景颜色渐变
来源:互联网 发布:靠谱泰国代购淘宝 知乎 编辑:程序博客网 时间:2024/05/18 17:41
1.设置背景颜色渐变
/背景色渐变 public void changebackgroud(int color1, int color2){ GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{color1, color2}); drawerlayout.setBackground(gd); }
2.获取渐变色百分比(网上找的)
public class ChangeColor { /** * 计算从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
- 获取过度颜色百分比及设置背景颜色渐变
- CSS 设置背景颜色渐变
- JavaFX设置背景颜色渐变
- ios 设置背景渐变颜色
- iOS: 设置背景颜色为渐变
- android 中设置背景颜色渐变
- swing 设置背景颜色渐变的方法
- div背景颜色设置成渐变色
- Flex设置DataGrid单元格颜色以及表头背景颜色渐变
- android背景颜色渐变
- css3 颜色 背景 渐变
- 背景颜色渐变 css3
- 背景实现颜色渐变
- android背景颜色渐变
- CSS3 背景颜色渐变
- css背景颜色渐变
- CSS背景颜色渐变
- CSS背景颜色渐变
- 异步请求调用
- Android定时器
- 面试题37—两个链表的第一个公共结点
- Unable to satisfy the following requirements解决方案
- Android性能优化之巧用软引用与弱引用优化内存使用
- 获取过度颜色百分比及设置背景颜色渐变
- 6.27
- unity之安卓手机截屏并显示在相册
- 面试题38—数字在排序数组中出现的次数
- 认识OKHttp
- jQuery 中的proxy()和delegation()方法
- JZOJ 5163【NOIP2017模拟6.25】PS的烦恼
- Linux下rpm及yum安装jdk
- python与数据挖掘-笔记2