Android编程实现随机生成颜色的方法示例

本文实例讲述了Android编程实现随机生成颜色的方法。分享给大家供大家参考,具体如下:

网上有个ColorPicker开源项目,选择颜色值。而在这里我想实现的是动态修改一个view的背景色。

开一个线程,每隔1s修改一次view的背景色。

我们知道在Android里设置一个view的背景色有

framelayout.setBackgroundColor(Color.parseColor("#"+arg0.obj));

就是用android的Color类去解析一个带#号的十六进制色值。现在要做的是动态随机获取这个16进制色值。

Java给我们提供了两种方法获取随机数:

一、使用Random类

通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。

前面有篇文章讲的比较详细http://www.jb51.net/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之间的随机数

random.nextInt(1000)+100;

注意这里是不包括1000的。

我测试过了,如果让random.nextInt(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 = Integer.toHexString(-16777216);

这个方法可以得到一个十六进制的数,如:FFFFFFFF;

这个十六进制的字符就是我们需要用Color.parse解析的色值了。下面大家应该知道怎么做了吧!

PS:这里再为大家推荐几款相关的颜色工具供大家参考使用:

RGB颜色编码生成器:
http://tools.jb51.net/color/rgb_color_generator

RGB颜色查询对照表_颜色代码表_颜色的英文名称大全:
http://tools.jb51.net/color/jPicker

在线网页调色板工具:
http://tools.jb51.net/color/color_picker

在线颜色选择器工具/RGB颜色查询对照表:
http://tools.jb51.net/color/colorpicker

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作json格式数据技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android 设置颜色的方法总结

    Android 设置颜色的方法总结 Android中有几种设置界面背景及文字颜色的方法,下面由浅入深分别介绍Android中设置颜色的几种方法: 1.直接在布局文件中设置: android:backgound="#FFFFFFFF", android:textcolor="#00000000" 2.把颜色提取出来形成资源,放在资源文件下面(values/drawable/color.xml): <?xml version="1.0" enc

  • Android修改DatePicker字体颜色及分割线颜色详细介绍

    一.DatePicker和TimePicker简介 DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期.如果要捕获用户修改DataPicker控件中的数据改变事件,需要为DatePicker添加OnDateChangedListener监听器. TimePicker是一个时间选择控件,也继承自FrameLayout类.时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择.如果要捕获用户修改

  • Android 改变图标原有颜色和搜索框的实例代码

    图标改变颜色:Drawable的变色,让Android也能有iOS那么方便的图片色调转换,就像同一个图标,但是有多个地方使用,并且颜色不一样,就可以用这个方法了. 搜索框: 一般是EditText实现,本文 实现 TextView图片和文字居中,键盘搜索. 来看看效果图: 图标改变颜色:第一个界面的左边(二维码)和右边(更多)两个实现,我放进去的图片是黑色的,显示出来是白色的. 搜索框:第一个界面的图片和文字居中,还可以设置间距,第二个见面搜索设置键盘搜索按钮,点击搜索监听事件,清除内容的图标.

  • Android编程之ProgressBar圆形进度条颜色设置方法

    本文实例讲述了Android ProgressBar圆形进度条颜色设置方法.分享给大家供大家参考,具体如下: 你是不是还在为设置进度条的颜色而烦恼呢--别着急,且看如下如何解决. ProgressBar分圆形进度条和水平进度条 我这里就分享下如何设置圆形进度条的颜色吧,希望对大家会有帮助. 源码如下: 布局文件代码: <ProgressBar android:id="@+id/progressbar" android:layout_width="wrap_content

  • Android 字符串中某个字段可点击和设置颜色的方法

    在android开发中,我们时常会遇到对字符串中某些固定的字段实现可点击和颜色的设置,现粘贴处我在开发中如何设置这些属性的. 代码如下: private TextView mContactNone; public void showRequestFailInviteRecord(){ String mRefresh = "系统开小差,请尝试刷新一下"; //创建 SpannableString 对象 SpannableString mStyledText = new Spannable

  • 修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解

    修改Android FloatingActionButton的title的文字颜色及背景颜色实例详解 首先看一张图片 我是在一个不错的开源的FloatingActionButton库基础上实现的,链接github开源库 参考图片的标记和代码里的注释.代码如下: <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/fab_meau" android:layout_width="wra

  • Android实现修改状态栏背景、字体和图标颜色的方法

    前言: Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼. 需求场景: 当toolbar及状态栏需要为白色或浅色时(如简书),状态栏由于用的Light风格Theme,字体,图标也都是白色,会看不清.如果改变成黑色就很和谐了. 一.修改状态栏颜色: 改变状态栏颜色,可以看看这篇文章.传送门:实现状态栏(statusbar)渐变效果其实很简单 传送门实现的效果: 这种方法实现的状态栏变色,没

  • Android如何自定义EditText光标与下划线颜色详解

    前言 最近在写些小Demo复习基础,在用到EditText的时候突然发现之前几乎没有注意到它的光标和下划线的颜色,于是花了不少时间,看了不少博客,现在就来总结和分享一下收获,话不多说了,来一起看看详细的介绍: 1.第一印象:原生的EditText 我们要在原生的EditText上修改,首先当然要认识一下它的本来面目.在Android Studio中新建一个工程,让MainActivity继承于AppCompatActivity(为什么要这样做,后面再说),然后在MainActivity的布局中放

  • Android编程实现随机生成颜色的方法示例

    本文实例讲述了Android编程实现随机生成颜色的方法.分享给大家供大家参考,具体如下: 网上有个ColorPicker开源项目,选择颜色值.而在这里我想实现的是动态修改一个view的背景色. 开一个线程,每隔1s修改一次view的背景色. 我们知道在Android里设置一个view的背景色有 framelayout.setBackgroundColor(Color.parseColor("#"+arg0.obj)); 就是用android的Color类去解析一个带#号的十六进制色值.

  • JavaScript随机生成颜色的方法

    废话不多说了直接给大家贴js代码了,具体代码如下所述: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <button id="btn1">调用第一种</button> <button

  • Android编程自定义进度条颜色的方法详解

    本文实例讲述了Android编程自定义进度条颜色的方法.分享给大家供大家参考,具体如下: 先看效果图: 老是提些各种需求问题,我觉得系统默认的颜色挺好的,但是Pk不过,谁叫我们不是需求人员呢,改吧! 这个没法了只能看源码了,还好下载了源码, sources\base\core\res\res\ 下应有尽有,修改进度条颜色只能找progress ,因为是改变样式,首先找styles.xml 找到xml后,进去找到: <style name="Widget.ProgressBar"&

  • Android编程之手机壁纸WallPaper设置方法示例

    本文实例讲述了Android编程之手机壁纸WallPaper设置方法.分享给大家供大家参考,具体如下: /** * Andorid设置手机屏幕的壁纸 * * @description: * @author ldm * @date 2016-5-4 下午3:08:56 */ public class SetWallpaperActivity extends Activity { // WallpaperManager类:系统壁纸管理.通过它可以获得当前壁纸以及设置指定图片作为系统壁纸. priva

  • Android编程绘图操作之弧形绘制方法示例

    本文实例讲述了Android编程绘图操作之弧形绘制方法.分享给大家供大家参考,具体如下: /** * 绘制弧形图案 * @description: * @author ldm * @date 2016-4-25 下午4:37:01 */ public class ArcsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns

  • Android编程实现图片的颜色处理功能示例

    本文实例讲述了Android编程实现图片的颜色处理功能.分享给大家供大家参考,具体如下: 先看效果图: 图片的颜色处理的基本步骤: 1.先拿到一张原图 2.拿到一张和原图一样的纸 3.把纸固定在画板上 4.颜色的取值 5.进度条的拖动与监听 代码编写: 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

  • Android编程之菜单Menu的创建方法示例

    本文实例讲述了Android编程之菜单Menu的创建方法.分享给大家供大家参考,具体如下: 在res目录下的menu文件夹下创建一个main.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="

  • PHP基于自定义类随机生成姓名的方法示例

    本文实例讲述了PHP基于自定义类随机生成姓名的方法.分享给大家供大家参考,具体如下: 自定义类rndChinaName.class.php: <?php Class rndChinaName { private $arrXing,$numbXing; private $arrMing,$numbMing; function rndChinaName() { $this->getXingList(); $this->getMingList(); } /* 获取姓列表 */ private

  • Android编程实现TextView字体颜色设置的方法小结

    本文实例讲述了Android编程实现TextView字体颜色设置的方法.分享给大家供大家参考,具体如下: 对于setTextView(int a)这里的a是传进去颜色的值.例如,红色0xff0000是指0xff0000如何直接传入R.color.red是没有办法设置颜色的,只有通过文章中的第三种方法先拿到资源的颜色值再传进去. 复制代码 代码如下: tv.setTextColor(this.getResources().getColor(R.color.red)); 关键字: android t

  • Android编程实现TextView部分颜色变动的方法

    本文实例讲述了Android编程实现TextView部分颜色变动的方法.分享给大家供大家参考,具体如下: public class StringHandleExampleActivity extends Activity { /** Called when the activity is first created. */ private TextView textView; private String tempStr = "abcd12我的中古zx9yu5!f3,,"; priva

随机推荐