android获取随机颜⾊_Android编程实现随机⽣成颜⾊的⽅法
⽰例
本⽂实例讲述了Android编程实现随机⽣成颜⾊的⽅法。分享给⼤家供⼤家参考,具体如下:
⽹上有个ColorPicker开源项⽬,选择颜⾊值。⽽在这⾥我想实现的是动态修改⼀个view的背景⾊。
开⼀个线程,每隔1s修改⼀次view的背景⾊。
我们知道在Android⾥设置⼀个view的背景⾊有
framelayout.setBackgroundColor(Color.parseColor("#"+arg0.obj));
就是⽤android的Color类去解析⼀个带#号的⼗六进制⾊值。现在要做的是动态随机获取这个16进制⾊值。
Java给我们提供了两种⽅法获取随机数:
⼀、使⽤Random类
通过Random类来产⽣⼀个随机数,这个是专业的Random⼯具类,功能强⼤。
前⾯有篇⽂章讲的⽐较详细//www.jb51/article/45886.htm
Random类使⽤说明
1、带种⼦与不带种⼦的区别
Random类使⽤的根本是策略分带种⼦和不带种⼦的Random的实例。
通俗说,两者的区别是:
带种⼦的,每次运⾏⽣成的结果都是⼀样的。
不带种⼦的,每次运⾏⽣成的都是随机的,没有规律可⾔。
2、创建不带种⼦的Random对象
Random random = new Random();
3、创建不带种⼦的Random对象
有两种⽅法:
1)
Random random = new Random(555L);
2)
Random random = new Random();
random.setSeed(555L);
总的来说,Random可以⽣成⼀个指定范围以内的随机数。
⽐如:要⽣成1000到100之间的随机数
注意这⾥是不包括1000的。
我测试过了,如果让Int(1)返回的永远都不会是1,都是0
⼆、直接使⽤Math.random()⽅法
⽽通过Math.random()返回⼀个0到1之间的double值。
如果要⽣成1000到100之间的随机数,则
Math.random()*(1000-100)+100;
但是16进制的颜⾊值如何⽣成呢。
我⽤
long i = Long.parseLong("ff000000", 16);
long i = Long.parseLong("ffffffff", 16);
测试了下,返回的是⼀个Long型的数据。
Long型转换成int型的可以直接int k = (int)i;得到的这个k是个负数。这个跟int类型的长度有关,具体可以去深究下
int类型和long型转换。
全0的,通过Long型转成的int型⼤⼩是-16777216;
全F的,通过Long型转成的int型⼤⼩是-1;
现在知道范围了,可以⽤Random或者Math⽣成⼀个范围在16777216到1之间的⼀个随机数了。
然后将这个随机数取负数。然后通过
String hex = HexString(-16777216);
这个⽅法可以得到⼀个⼗六进制的数,如:FFFFFFFF;
android编程入门指南 pdf这个⼗六进制的字符就是我们需要⽤Color.parse解析的⾊值了。下⾯⼤家应该知道怎么做了吧!
PS:这⾥再为⼤家推荐⼏款相关的颜⾊⼯具供⼤家参考使⽤:
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发⼊门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作json格式数据技巧总结》、《Android资源操作技巧汇总》及《Android控件⽤法总结》
希望本⽂所述对⼤家Android程序设计有所帮助。
本⽂标题: Android编程实现随机⽣成颜⾊的⽅法⽰例
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论