如何以编程方式从Android上的渐变中获取颜色列表

如何以编程方式从Android上的渐变中获取颜色列表,第1张

概述在 Android中我想绘制一个动态数量的馅饼PieChart.每个饼应该具有与渐变不同的颜色. 例如,我想要从浅棕色到深棕色的渐变.如果我需要绘制五个馅饼,我需要从这个渐变的开始到结束五个卷. 如何使用Android框架在Java中实现这一目标? 我发现我可以为一条线创建一个LinearGradient,即: LinearGradient lg = new LinearGradient(1, 1 在 Android中我想绘制一个动态数量的馅饼PIEChart.每个饼应该具有与渐变不同的颜色.

例如,我想要从浅棕色到深棕色的渐变.如果我需要绘制五个馅饼,我需要从这个渐变的开始到结束五个卷.

如何使用AndroID框架在Java中实现这一目标?

我发现我可以为一条线创建一个linearGradIEnt,即:

linearGradIEnt lg = new linearGradIEnt(1,1,5,toRGB("lightbrown"),toRGB("darkbrown"),TileMode.REPEAT);

但我没有找到任何从这一行获得颜色的功能,即:

// for the five needed RGB colors from the gradIEnt linelg.getRGBcolor(1,1);lg.getRGBcolor(2,2);lg.getRGBcolor(3,3);lg.getRGBcolor(4,4);lg.getRGBcolor(5,5);

你有什么想法我怎么能得到这个?

谢谢!

解决方法 您无法直接从linearGradIEnt获取这些值.渐变不包含实际绘图.要获得这些值,您可以将它们绘制到画布上并将颜色从画布中拉出来,或者我建议您自己计算这些值.

它是一个重复的线性渐变,分五步,你有第一个和最后一个颜色的RGB值.其余的只是数学.这是伪代码:

int r1 = startcolor.red;int g1 = startcolor.green;int b1 = startcolor.blue;int r2 = endcolor.red;int g2 = endcolor.green;int b2 = endcolor.blue;int redStep = r2 - r1 / 4;int greenStep = g2 - g1 / 4;int blueStep = b2 - b1 / 4;firstcolor = new color(r1,g1,b1);secondcolor = new color(r1 + redStep,g1 + greenStep,b1 + blueStep);thirdcolor = new color(r1 + redStep * 2,g1 + greenStep * 2,b1 + blueStep * 2);fourthcolor = new color(r1 + redStep * 3,g1 + greenStep * 3,b1 + blueStep * 3);fifthcolor = new color(r1 + redStep * 4,g1 + greenStep * 4,b1 + blueStep * 4);
总结

以上是内存溢出为你收集整理的如何以编程方式从Android上的渐变中获取颜色列表全部内容,希望文章能够帮你解决如何以编程方式从Android上的渐变中获取颜色列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存